# 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 потока) и распределяются по эмуляторам через очередь.