У нас вы можете посмотреть бесплатно Playwright TypeScript | Разработка фреймворка на основе данных с нуля (JSON + POM) + негативное т... или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
В этом практическом занятии мы: Используем внешние тестовые данные JSON в Playwright Выполняем тесты корректного и некорректного входа в систему Применяем лучшие практики: утверждения на уровне тестирования Повторно используем тот же класс LoginPage POM Создаем масштабируемую и поддерживаемую структуру автоматизации 👉 Это делает ее реальной структурой автоматизации 00:00 Введение 02:39 Что мы уже сделали... 04:36 Шаг 1 - Создайте папку test-data и добавьте в нее файл loginData.json 10:12 Шаг 2 - Обновите LoginPage 14:18 Шаг 3 - Используйте JSON в Test login.spec.ts 19:04 Шаг 4 - Добавьте тест некорректного входа в систему 23:12 ТЕСТ - https://forms.gle/bkxPFEaQP67jZJNC8 ПРОЕКТ - https://github.com/Raghav-Pal/Playwri... - 🎉 Теперь у нас есть: ✔ Тестирование на основе данных ✔ Множество сценариев ✔ Многократно используемый POM ✔ Чистые утверждения 👉Это настоящий дизайн фреймворка Фрагменты кода: ▬▬▬▬▬▬▬▬▬▬▬▬ LoginPage.ts import { Page, Locator } from '@playwright/test'; export class LoginPage { readonly page: Page; readonly username: Locator; readonly password: Locator; readonly loginButton: Locator; readonly errorMessage: Locator; constructor(page: Page) { this.page = page; this.username = page.locator('#user-name'); this.password = page.locator('#password'); this.loginButton = page.locator('#login-button'); this.errorMessage = page.locator('[data-test="error"]'); } async gotoLoginPage() { await this.page.goto('https://www.saucedemo.com/'); } async login(user: string, pass: string) { await this.username.fill(user); await this.password.fill(pass); await this.loginButton.click(); } } login.spec.ts import {test, expect} from '@playwright/test' import { LoginPage } from '../pages/LoginPage'; import loginData from '../test_data/login_data.json' test('valid login', async ({ page }) => { const loginPage = new LoginPage(page); await loginPage.gotoLoginPage(); await loginPage.login( loginData.validUser.username, loginData.validUser.password ); await expect(page).toHaveURL('https://www.saucedemo.com/inventory.h... }); test('Неверный логин', async ({ page }) => { const loginPage = new LoginPage(page); await loginPage.gotoLoginPage(); await loginPage.login( loginData.invalidUser.username, loginData.invalidUser.password ); await expect(loginPage.errorMessage).toBeVisible(); }); #Драматург #TypeScript #ТестированиеНаУправленииДанныеми ▬▬▬▬▬▬▬ Поделитесь со всеми, кому это может понадобиться Если моя работа вам помогла, подумайте о том, чтобы помочь любому животному рядом с вами любым доступным вам способом Никогда не переставайте учиться Рагхав Пал ▬▬▬▬ ПОЛЕЗНЫЕ ССЫЛКИ ▬▬▬▬ ✅ ВСЕ УЧЕБНЫЕ ПОСОБИЯ - https://AutomationStepByStep.com/ 🙌 Свяжитесь с Рагхавом: Спросите Рагхава: https://bit.ly/2CoJGWf GitHub: https://github.com/Raghav-Pal Udemy: https://www.udemy.com/user/raghav-pal-3/ Короткие видео на английском языке - https://bit.ly/3H9bifV Короткие видео на хинди - https://bit.ly/3XY7XqN ➡️ Подписывайтесь на канал, чтобы получать больше видео: / @raghavpal —