Урок 19. Playwright: POM, фикстуры, трассировка, параллельность

🎁 Бонус-блок: Playwright ⏱️ Время изучения: ~70 мин 🎯 Сложность: Продвинутая
#playwright #POM #fixtures #tracing #pytest-xdist #APIRequestContext
⚠️ Бонус-блок вне лекций курса. Playwright — современная альтернатива Selenium. API сверяйте с официальной документацией playwright.dev/python.

⚡ Кратко: инфраструктура тестов

  • POM в Playwright: класс страницы хранит page и локаторы, методы выполняют сценарии.
  • Фикстуры pytest-playwright: page, context, browser; настройка через browser_context_args и --base-url.
  • Отладка: --tracing=retain-on-failure + playwright show-trace; видео и скриншоты.
  • Параллельно: pytest -n auto (pytest-xdist).
  • API + UI: APIRequestContext для подготовки данных через REST.

Топ-3 ошибки: 1) Локаторы в тестах, а не в классе страницы. 2) Завязка тестов друг на друга при параллельном прогоне. 3) Трассировку включают, но не сохраняют артефакты в CI.

📖 О чём этот урок

Когда тестов много, важна инфраструктура: как организован код (POM), как настраиваются браузеры (фикстуры), как отлаживать падения (трассировка) и как ускорять прогон (параллельность). Этот урок собирает всё это для Playwright и показывает мостик к API-тестированию.

Что изучим

  • Page Object Model на Playwright: классы страниц на Locator
  • Встроенные фикстуры pytest-playwright и их настройка
  • conftest.py: browser_context_args, --base-url, свои фикстуры
  • Трассировка, видео, скриншоты; Trace Viewer
  • Параллельный запуск через pytest-xdist
  • API-тестирование: APIRequestContext и связка UI+API

📚 Что повторить перед изучением

🎯 Что изучать дальше