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