До вмісту
L-SYSTEM

рекомендованийсередній

Playwright для QA-інженерів

Повний курс з Playwright і TypeScript для QA-інженерів: локатори, асерти, автоочікування та таймаути, усі типові елементи інтерфейсу, Page Object Model, фікстури, конфігурація та проєкти, перевикористання авторизації, артефакти та звіти, візуальне тестування, API-запити та моки, паралельність і нестабільні тести, Docker і CI. Кожна тема подається як біль, механізм і ціна. Матеріал курсу — англійською.

Заняття — вашою мовою: його веде асистент.

  • Матеріал: англійська
  • Іспит: англійська — складається на сайті, без перекладу
Як це влаштовано

Асистент бере матеріал курсу з нашого сервера й веде заняття вашою мовою.

Іспит складається на сайті, без асистента. Питання іспиту не перекладаються: так вирішено для всіх курсів.

Як під’єднати асистента

Шлях курсом

· юнітів: 27

порядок вільний · сходинки нижче — той порядок, який пропонує автор, а не умоваВигляд: карта · щаблі

  1. Щабель 1

    ~1,2 год

  2. Щабель 2

    ~2,9 год

    Core · за задумом автора — після «Чому Playwright і що він насправді робить»

  3. Щабель 3

    ~1,8 год

  4. Щабель 4

    ~1,2 год

  5. Щабель 5

    ~1,2 год

  6. Щабель 6

    ~1,7 год

  7. Щабель 7

    ~2,9 год

    Core · за задумом автора — після «Локатори, орієнтовані на користувача, і правило суворості»

  8. Щабель 8

    ~3 год

  9. Щабель 9

    ~9,8 год

  10. Щабель 10

    ~4,7 год

  11. Щабель 11

    ~1,8 год

  12. Щабель 12

    ~1,7 год

  13. Щабель 13

    ~3,5 год

    за задумом автора — після «Конфігурація, проєкти, оточення та мобільна емуляція»

  14. Щабель 14

    ~1,7 год

    • 25 · Scale · за задумом автора — після 2 із: «Автентифікація один раз: setup-проєкти, storageState і вхід через API», «Докази: скриншоти, відео, трейси та репортери», «Паралельність, повтори, теги та нестабільність»

      Docker і безперервна інтеграція

      ~1,7 год

  15. Щабель 15

    ~3,4 год

    Review

  16. Іспит

    закрито · записатися на курс

    • фінал · у браузері, без асистента

      Іспит

Шлях курсом словами
  • Щабель 1 · Чому Playwright і що він насправді робить — ~1,2 год
  • Щабель 2 · TypeScript, який справді потрібен для коду тестів — за задумом автора — після «Чому Playwright і що він насправді робить»; ~1,7 год
  • Щабель 2 · Встановлення Playwright і структура проєкту — за задумом автора — після «Чому Playwright і що він насправді робить»; ~1,2 год
  • Щабель 3 · Запуск і налагодження: CLI, UI mode, Inspector, codegen, Trace Viewer — за задумом автора — після «Встановлення Playwright і структура проєкту»; ~1,8 год
  • Щабель 4 · Анатомія тесту: describe, хуки, кроки, анотації — за задумом автора — після «Запуск і налагодження: CLI, UI mode, Inspector, codegen, Trace Viewer»; ~1,2 год
  • Щабель 5 · Синтаксис локаторів: CSS, текст, XPath і ланцюжки — за задумом автора — після «Анатомія тесту: describe, хуки, кроки, анотації»; ~1,2 год
  • Щабель 6 · Локатори, орієнтовані на користувача, і правило суворості — за задумом автора — після «Синтаксис локаторів: CSS, текст, XPath і ланцюжки»; ~1,7 год
  • Щабель 7 · Фільтрація, зв'язки та списки елементів — за задумом автора — після «Локатори, орієнтовані на користувача, і правило суворості»; ~1,2 год
  • Щабель 7 · Асерти та вилучення значень — за задумом автора — після «Локатори, орієнтовані на користувача, і правило суворості»; ~1,7 год
  • Щабель 8 · Автоочікування та ієрархія таймаутів — за задумом автора — після «Асерти та вилучення значень»; ~1,8 год
  • Щабель 8 · Текстові поля, клавіатура та миша — за задумом автора — після будь-якого із: «Фільтрація, зв'язки та списки елементів», «Асерти та вилучення значень»; ~1,2 год
  • Щабель 9 · Чекбокси, радіокнопки, випадні списки та підказки — за задумом автора — після «Текстові поля, клавіатура та миша»; ~1,7 год
  • Щабель 9 · Діалоги, алерти та веб-таблиці — за задумом автора — після «Текстові поля, клавіатура та миша»; ~1,7 год
  • Щабель 9 · Поля вибору дати, слайдери та iframe — за задумом автора — після «Текстові поля, клавіатура та миша»; ~1,8 год
  • Щабель 9 · Page Object Model: перші об'єкти — за задумом автора — після «Автоочікування та ієрархія таймаутів»; ~1,7 год
  • Щабель 9 · Докази: скриншоти, відео, трейси та репортери — за задумом автора — після «Автоочікування та ієрархія таймаутів»; ~1,3 год
  • Щабель 9 · API-запити в Playwright — за задумом автора — після «Автоочікування та ієрархія таймаутів»; ~1,7 год
  • Щабель 10 · Архітектура сторінок: базові хелпери та менеджер сторінок — за задумом автора — після «Page Object Model: перші об'єкти»; ~1,7 год
  • Щабель 10 · Візуальне регресійне тестування — за задумом автора — після «Докази: скриншоти, відео, трейси та репортери»; ~1,3 год
  • Щабель 10 · Перехоплення та мокування мережі — за задумом автора — після «API-запити в Playwright»; ~1,8 год
  • Щабель 11 · Фікстури: вбудовані, користувацькі та рівня воркера — за задумом автора — після «Архітектура сторінок: базові хелпери та менеджер сторінок»; ~1,8 год
  • Щабель 12 · Конфігурація, проєкти, оточення та мобільна емуляція — за задумом автора — після «Фікстури: вбудовані, користувацькі та рівня воркера»; ~1,7 год
  • Щабель 13 · Автентифікація один раз: setup-проєкти, storageState і вхід через API — за задумом автора — після «Конфігурація, проєкти, оточення та мобільна емуляція»; ~1,7 год
  • Щабель 13 · Паралельність, повтори, теги та нестабільність — за задумом автора — після «Конфігурація, проєкти, оточення та мобільна емуляція»; ~1,8 год
  • Щабель 14 · Docker і безперервна інтеграція — за задумом автора — після 2 із: «Автентифікація один раз: setup-проєкти, storageState і вхід через API», «Докази: скриншоти, відео, трейси та репортери», «Паралельність, повтори, теги та нестабільність»; ~1,7 год
  • Щабель 15 · Пари, які плутають, і готовність до іспиту — за задумом автора — після 3 із: «Поля вибору дати, слайдери та iframe», «Автентифікація один раз: setup-проєкти, storageState і вхід через API», «Візуальне регресійне тестування», «Перехоплення та мокування мережі», «Docker і безперервна інтеграція»; ~1,7 год
  • Щабель 15 · Практика постачання: стратегія, рев'ю та докази на проєкті — за задумом автора — після «Docker і безперервна інтеграція»; необовʼязковий; ~1,7 год

Програма · 27 юнітів

1Чому Playwright і що він насправді робить

Пояснити дві причини збоїв попередньої UI-автоматизації — нестабільність через таймінг і накладні витрати на драйвери — і як архітектура Playwright усуває кожну

~1,2 год
2TypeScript, який справді потрібен для коду тестів

Читати й писати конструкції JavaScript, які трапляються в кожному тесті Playwright: const/let, стрілкові функції, шаблонні рядки, деструктуризацію, об'єкти та масиви

~1,7 год
3Встановлення Playwright і структура проєкту

Встановити Playwright у новий репозиторій і в наявний фронтенд-репозиторій, не зламавши жодного з них

~1,2 год
4Запуск і налагодження: CLI, UI mode, Inspector, codegen, Trace Viewer

Запускати з командного рядка весь набір, теку, файл, окремий тест, проєкт, останні тести, що впали, і лише тести, яких торкнулася зміна

~1,8 год
5Анатомія тесту: describe, хуки, кроки, анотації

Структурувати spec-файл блоками describe і чотирма хуками та сказати, коли кожен хук виконується відносно воркерів

~1,2 год
6Синтаксис локаторів: CSS, текст, XPath і ланцюжки

Читати словник DOM, від якого залежить локатор: тег, атрибут, клас, id, текстовий вузол, батьківський і дочірній елемент

~1,2 год
7Локатори, орієнтовані на користувача, і правило суворості

Застосовувати порядок пріоритету локаторів: роль, мітка, плейсхолдер, текст, alt, title, test id, CSS або XPath — в останню чергу

~1,7 год
8Фільтрація, зв'язки та списки елементів

Використовувати filter() з hasText, hasNotText, has, hasNot і visible, щоб звузити набір за вмістом, за нащадком або за видимістю

~1,2 год
9Асерти та вилучення значень

Відрізняти web-first асерти від звичайних і за замовчуванням вибирати перші

~1,7 год
10Автоочікування та ієрархія таймаутів

Перелічити перевірки готовності до дії та пояснити, яка дія потребує яких із них

~1,8 год
11Текстові поля, клавіатура та миша

Вибирати між fill, clear і pressSequentially за подіями, які надсилає кожен із них, і казати, коли потрібне посимвольне введення

~1,2 год
12Чекбокси, радіокнопки, випадні списки та підказки

Правильно використовувати check, uncheck і setChecked та обґрунтовувати force: true для візуально прихованого нативного input

~1,7 год
13Діалоги, алерти та веб-таблиці

Пояснити, що Playwright робить із нативним діалогом, коли слухача не зареєстровано, і що зобов'язаний зробити зареєстрований слухач

~1,7 год
14Поля вибору дати, слайдери та iframe

Автоматизувати поле вибору дати введенням із клавіатури, де це можливо, і навігацією календарем, де ні

~1,8 год
15Page Object Model: перші об'єкти

Назвати конкретне дублювання, яке усуває page object, і конкретну зміну, яку він робить дешевою

~1,7 год
16Архітектура сторінок: базові хелпери та менеджер сторінок

Виносити спільну поведінку в неглибокий базовий клас — один рівень успадкування — а далі використовувати композицію

~1,7 год
17Фікстури: вбудовані, користувацькі та рівня воркера

Назвати вбудовані фікстури й сказати, що дає кожна, і пояснити, звідки береться testInfo (це не фікстура)

~1,8 год
18Конфігурація, проєкти, оточення та мобільна емуляція

Використовувати проєкти, щоб запускати ті самі тести в різних браузерах, на пристроях, під ролями та в оточеннях ENGAGE, і обмежувати паралельність проєкту його власним налаштуванням workers

~1,7 год
19Автентифікація один раз: setup-проєкти, storageState і вхід через API

Побудувати setup-проєкт, який один раз проходить автентифікацію й зберігає сесію в storageState, зокрема IndexedDB, коли бібліотека ідентифікації зберігає токени там

~1,7 год
20Докази: скриншоти, відео, трейси та репортери

Робити скриншоти сторінки, елемента та в буфер і додавати їх до звіту

~1,3 год
21Візуальне регресійне тестування

Писати порівняння скриншотів за допомогою toHaveScreenshot і керувати еталонами через режими updateSnapshots і шаблони шляхів

~1,3 год
22API-запити в Playwright

Використовувати фікстуру request для написання API-тестів, перевіряючи через await expect(response).toBeOK(), а також заголовки й тіло

~1,7 год
23Перехоплення та мокування мережі

Вибирати між fulfill, continue, abort і fallback для перехопленого запиту й пояснювати порядок обробників

~1,8 год
24Паралельність, повтори, теги та нестабільність

Пояснити, що таке воркер, як робота розподіляється з fullyParallel і без нього та яка кількість воркерів за замовчуванням

~1,8 год
25Docker і безперервна інтеграція

Запускати набір в офіційному образі Playwright із рекомендованими прапорцями Docker і тримати тег образу рівним встановленій версії Playwright

~1,7 год
26Пари, які плутають, і готовність до іспиту

Розводити пари понять Playwright, які найчастіше плутають, називаючи одне правило, що розділяє кожну пару

~1,7 год
27Практика постачання: стратегія, рев'ю та докази на проєкті

Вирішувати, що автоматизувати і на якому рівні — модульні тести, API, UI, візуальні перевірки, доступність, користувацькі сценарії — і обстоювати це рішення перед клієнтом

~1,7 год