Files
homework_6/README.md

4.2 KiB
Raw Blame History

OTUS Homework 6: Playwright UI Tests

UI-автотесты на Playwright для 4 сценариев OTUS. Проект оформлен в стиле предыдущих ДЗ: DI через Guice, трассировка, линтеры, запуск из консоли.

Что реализовано

  • 4 UI-сценария из ТЗ (Clickhouse, Catalog, B2B, Subscription).
  • DI через Guice: ресурсы Playwright создаются в фикстурах и инжектятся в тесты.
  • Трассировка включена для каждого теста.
  • Линтеры: Checkstyle и SpotBugs.
  • Запуск из консоли (Maven).

Структура проекта

  • src/test/java/ru/kovbasa/tests — тесты по сценариям.
  • src/test/java/ru/kovbasa/pages — page-объекты.
  • src/test/java/ru/kovbasa/playwright — фикстуры Playwright.
  • src/test/java/ru/kovbasa/config — DI и Guice extension.
  • traces/ — zip-трейсы по каждому тесту.
  • traces.zip — архив для сдачи.

Сценарии

  1. Clickhouse: блок преподавателей, drag&drop, popup, next/prev в карточке.
  2. Каталог курсов: фильтры по направлению/уровню/длительности, проверка изменения карточек.
  3. Услуги компаниям: переход в “Разработка курса для бизнеса”, направления, переход в каталог.
  4. Подписки: раскрытие/сворачивание описания, переход к оплате, выбор Trial.

Версии

  • Java: 21
  • Playwright: 1.58.0
  • JUnit: 5.10.1
  • Guice: 7.0.0

Требования из ТЗ

  • Использование DI — реализовано через Guice.
  • Использование линтеров — Checkstyle и SpotBugs включены в mvn verify.
  • Только Playwright — другие UI-фреймворки не используются.
  • Трассировка для всех тестов — включена в фикстуре PlaywrightExtension.
  • @UsePlaywright не используется — ресурсы создаются и инжектятся вручную.
  • Запуск из консоли — mvn test.

Как запускать

Все тесты

mvn test

Один тест

mvn "-Dtest=ru.kovbasa.tests.CatalogFiltersTest" test

Параметры запуска

mvn -Dheadless=false -Dbrowser=chromium -DbaseUrl=https://otus.ru test

Доступные браузеры: chromium, firefox, webkit.

Полезные параметры:

  • -Dheadless=false — запуск в UI.
  • -DslowMo=200 — замедление действий.
  • -DtimeoutMs=40000 — таймауты ожиданий.

Трейсы

Трейсы автоматически сохраняются в каталог traces/ в виде zip-файлов по каждому тесту.

Для сдачи ДЗ нужно положить traces.zip в корень проекта. Пример (PowerShell):

Compress-Archive -Path traces\* -DestinationPath traces.zip -Force

Проверка качества

mvn verify

Примечания по консоли

  • Предупреждения sun.misc.Unsafe приходят из зависимостей Guava при Java 21. Добавлен флаг -Dcom.google.common.util.concurrent.AbstractFuture.disableUnsafe=true, чтобы минимизировать их.
  • Сообщения Corrupted channel... появляются только при первом скачивании браузеров Playwright. После установки браузеров они исчезают.

Возможные проблемы

  • Если не загружаются браузеры Playwright, выполните mvn test с доступом к сети.
  • Если попапы мешают кликам, используется автоматическое закрытие типовых модалок.