81 lines
3.2 KiB
Markdown
81 lines
3.2 KiB
Markdown
# OTUS Homework 6: Playwright UI Tests
|
||
UI-автотесты на Playwright для 4 сценариев OTUS с DI и трассировкой.
|
||
|
||
## Что реализовано
|
||
- 4 UI-сценария из ТЗ (Clickhouse, Catalog, B2B, Subscription).
|
||
- DI через Guice: ресурсы Playwright создаются в фикстурах и инжектятся в тесты.
|
||
- Трассировка включена для каждого теста.
|
||
- Линтеры: Checkstyle и SpotBugs.
|
||
- Запуск из консоли (Maven).
|
||
|
||
## Сценарии
|
||
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
|
||
|
||
## Структура проекта
|
||
- `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` — архив для сдачи.
|
||
|
||
## Команды запуска
|
||
Все тесты:
|
||
```bash
|
||
mvn test
|
||
```
|
||
|
||
Один тест (PowerShell):
|
||
```powershell
|
||
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
|
||
```
|
||
|
||
## Требования к окружению
|
||
- Java 21
|
||
- Maven
|
||
|
||
## Примечания по консоли
|
||
- Предупреждения `sun.misc.Unsafe` приходят из зависимостей Guava при Java 21. Добавлен флаг `-Dcom.google.common.util.concurrent.AbstractFuture.disableUnsafe=true`, чтобы минимизировать их.
|
||
- Сообщения `Corrupted channel...` появляются только при первом скачивании браузеров Playwright. После установки браузеров они исчезают.
|