Files
homework_6/README.md

98 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` с доступом к сети.
- Если попапы мешают кликам, используется автоматическое закрытие типовых модалок.