# 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`. ## Как запускать ### Все тесты ```bash mvn test ``` ### Один тест ```bash mvn "-Dtest=ru.kovbasa.tests.CatalogFiltersTest" test ``` ### Параметры запуска ```bash 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: ```powershell Compress-Archive -Path traces\* -DestinationPath traces.zip -Force ``` Bash: ```bash zip -r traces.zip traces ``` ## Проверка качества ```bash mvn verify ``` ## Кросс‑платформенность Проект запускается на Windows / Linux / macOS. Минимальные требования: - Java 21 - Maven - доступ к сети при первом запуске (для скачивания браузеров Playwright) ## Примечания по консоли - Предупреждения `sun.misc.Unsafe` приходят из зависимостей Guava при Java 21. Добавлен флаг `-Dcom.google.common.util.concurrent.AbstractFuture.disableUnsafe=true`, чтобы минимизировать их. - Сообщения `Corrupted channel...` появляются только при первом скачивании браузеров Playwright. После установки браузеров они исчезают. ## Возможные проблемы - Если не загружаются браузеры Playwright, выполните `mvn test` с доступом к сети. - Если попапы мешают кликам, используется автоматическое закрытие типовых модалок.