1 · Core
Почему Playwright и что он на самом деле делает
~1,2 ч

Полный курс по Playwright и TypeScript для QA-инженеров: локаторы, ассерты, автоожидания и таймауты, все типовые элементы интерфейса, Page Object Model, фикстуры, конфигурация и проекты, переиспользование авторизации, артефакты и отчёты, визуальное тестирование, API-запросы и моки, параллельность и нестабильные тесты, Docker и CI. Каждая тема даётся как боль, механизм и цена. Материал курса — на английском.
Занятие — на вашем языке: его ведёт ассистент.
Ассистент берёт материал курса с нашего сервера и ведёт занятие на вашем языке.
Экзамен сдаётся на сайте, без ассистента. Вопросы экзамена не переводятся: так решено для всех курсов.
порядок свободный · ступени ниже — тот порядок, который предлагает автор, а не условиеВид: карта · ступени
1 · Core
Почему Playwright и что он на самом деле делает
~1,2 ч
2 · Core
TypeScript, который действительно нужен для кода тестов
~1,7 ч
по замыслу автора — после «Почему Playwright и что он на самом деле делает»
3 · Core
Установка Playwright и структура проекта
~1,2 ч
по замыслу автора — после «Почему Playwright и что он на самом деле делает»
4 · Core
Запуск и отладка: CLI, UI mode, Inspector, codegen, Trace Viewer
~1,8 ч
по замыслу автора — после «Установка Playwright и структура проекта»
5 · Core
Анатомия теста: describe, хуки, шаги, аннотации
~1,2 ч
по замыслу автора — после «Запуск и отладка: CLI, UI mode, Inspector, codegen, Trace Viewer»
6 · Core
Синтаксис локаторов: CSS, текст, XPath и цепочки
~1,2 ч
по замыслу автора — после «Анатомия теста: describe, хуки, шаги, аннотации»
7 · Core
Локаторы, ориентированные на пользователя, и правило строгости
~1,7 ч
по замыслу автора — после «Синтаксис локаторов: CSS, текст, XPath и цепочки»
8 · Core
Фильтрация, связи и списки элементов
~1,2 ч
по замыслу автора — после «Локаторы, ориентированные на пользователя, и правило строгости»
9 · Core
~1,7 ч
по замыслу автора — после «Локаторы, ориентированные на пользователя, и правило строгости»
10 · Core
Автоожидание и иерархия таймаутов
~1,8 ч
по замыслу автора — после «Ассерты и извлечение значений»
11 · UI components
Текстовые поля, клавиатура и мышь
~1,2 ч
по замыслу автора — после любого из: «Фильтрация, связи и списки элементов», «Ассерты и извлечение значений»
12 · UI components
Чекбоксы, радиокнопки, выпадающие списки и подсказки
~1,7 ч
по замыслу автора — после «Текстовые поля, клавиатура и мышь»
13 · UI components
~1,7 ч
по замыслу автора — после «Текстовые поля, клавиатура и мышь»
14 · UI components
Поля выбора даты, слайдеры и iframe
~1,8 ч
по замыслу автора — после «Текстовые поля, клавиатура и мышь»
15 · Architecture
Page Object Model: первые объекты
~1,7 ч
по замыслу автора — после «Автоожидание и иерархия таймаутов»
16 · Architecture
Архитектура страниц: базовые хелперы и менеджер страниц
~1,7 ч
по замыслу автора — после «Page Object Model: первые объекты»
17 · Architecture
Фикстуры: встроенные, пользовательские и уровня воркера
~1,8 ч
по замыслу автора — после «Архитектура страниц: базовые хелперы и менеджер страниц»
18 · Architecture
Конфигурация, проекты, окружения и мобильная эмуляция
~1,7 ч
по замыслу автора — после «Фикстуры: встроенные, пользовательские и уровня воркера»
19 · Architecture
Аутентификация один раз: setup-проекты, storageState и вход через API
~1,7 ч
по замыслу автора — после «Конфигурация, проекты, окружения и мобильная эмуляция»
20 · Evidence
Доказательства: скриншоты, видео, трейсы и репортеры
~1,3 ч
по замыслу автора — после «Автоожидание и иерархия таймаутов»
21 · Evidence
Визуальное регрессионное тестирование
~1,3 ч
по замыслу автора — после «Доказательства: скриншоты, видео, трейсы и репортеры»
22 · API
~1,7 ч
по замыслу автора — после «Автоожидание и иерархия таймаутов»
23 · API
~1,8 ч
по замыслу автора — после «API-запросы в Playwright»
24 · Scale
Параллельность, повторы, теги и нестабильность
~1,8 ч
по замыслу автора — после «Конфигурация, проекты, окружения и мобильная эмуляция»
25 · Scale
Docker и непрерывная интеграция
~1,7 ч
по замыслу автора — после 2 из: «Аутентификация один раз: setup-проекты, storageState и вход через API», «Доказательства: скриншоты, видео, трейсы и репортеры», «Параллельность, повторы, теги и нестабильность»
26 · Review
Пары, которые путают, и готовность к экзамену
~1,7 ч
по замыслу автора — после 3 из: «Поля выбора даты, слайдеры и iframe», «Аутентификация один раз: setup-проекты, storageState и вход через API», «Визуальное регрессионное тестирование», «Перехват и мокирование сети», «Docker и непрерывная интеграция»
27 · Review
Практика поставки: стратегия, ревью и доказательства на проекте
~1,7 ч
по замыслу автора — после «Docker и непрерывная интеграция»
финал · в браузере, без ассистента
Экзамен
закрыт · записаться на курс
| 1 | Почему Playwright и что он на самом деле делает Объяснить две причины сбоев прежней UI-автоматизации — нестабильность из-за тайминга и накладные расходы на драйверы — и как архитектура Playwright устраняет каждую | ~1,2 ч |
| 2 | TypeScript, который действительно нужен для кода тестов Читать и писать конструкции 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 ч |
| 15 | Page 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 ч |
| 22 | API-запросы в Playwright Использовать фикстуру request для написания API-тестов, проверяя через await expect(response).toBeOK(), а также заголовки и тело | ~1,7 ч |
| 23 | Перехват и мокирование сети Выбирать между fulfill, continue, abort и fallback для перехваченного запроса и объяснять порядок обработчиков | ~1,8 ч |
| 24 | Параллельность, повторы, теги и нестабильность Объяснить, что такое воркер, как работа распределяется с fullyParallel и без него и каково количество воркеров по умолчанию | ~1,8 ч |
| 25 | Docker и непрерывная интеграция Запускать набор в официальном образе Playwright с рекомендуемыми флагами Docker и держать тег образа равным установленной версии Playwright | ~1,7 ч |
| 26 | Пары, которые путают, и готовность к экзамену Разводить пары понятий Playwright, которые чаще всего путают, называя одно правило, разделяющее каждую пару | ~1,7 ч |
| 27 | Практика поставки: стратегия, ревью и доказательства на проекте Решать, что автоматизировать и на каком уровне — модульные тесты, API, UI, визуальные проверки, доступность, пользовательские сценарии — и отстаивать это решение перед клиентом | ~1,7 ч |