К содержимому
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 ч