Files
homework_7/README.md
T

61 lines
2.4 KiB
Markdown

# OTUS Homework 7: Mobile Testing
Проект содержит мобильные UI-тесты приложения Wishlist на `selenide-appium`.
Сценарии:
- создание/редактирование списка желаний;
- создание/редактирование подарка;
- изменение статуса резервирования подарка другого пользователя.
## Что реализовано по требованиям
- `docker-compose` поднимает `wiremock` и 2 Android-эмулятора (`android-emulator-1`, `android-emulator-2`) для параллельного запуска.
- APK хранится в `wiremock/__files/wishlist.apk` и устанавливается через Appium capability `app`.
- DI на `Guice`, запуск через `JUnit 5 Extension`, балансировка эмуляторов через `BlockingQueue`.
- Подготовка тестовых данных выполняется через JDBC перед каждым тестом.
- Логи `logcat` сохраняются в `logcat.txt` через Appium logs API (без ADB-скриптов).
## Структура
- `src/main/java` — инфраструктура, конфиги, page/component object.
- `src/test/java` — только тестовые классы.
- `wiremock` — маппинги и APK.
## Тестовые аккаунты
- `user1us / user1us`
- `user2us / user2us`
- `user3us / user3us`
- `user4us / user4us`
`user4us` используется как владелец подарка в тесте резервирования.
## Запуск
1. Поднять окружение:
```bash
docker compose up -d
```
2. Убедиться, что сервисы `wiremock`, `android-emulator-1`, `android-emulator-2` имеют статус `healthy`:
```bash
docker compose ps
```
3. Указать доступ к БД:
PowerShell:
```powershell
$env:DB_URL="jdbc:postgresql://sql.otus.kartushin.su:5432/wishlist"
$env:DB_USER="student"
$env:DB_PASSWORD="student"
```
bash:
```bash
export DB_URL="jdbc:postgresql://sql.otus.kartushin.su:5432/wishlist"
export DB_USER="student"
export DB_PASSWORD="student"
```
4. Запустить тесты:
```bash
mvn test
```
Тесты запускаются параллельно по классам (2 потока) и распределяются по эмуляторам через очередь.