В данном проекте представлен пример UI автотестов для мобильного приложения Wikipedia.
Тестируемая функциональность:
- Прохождение onboarding страниц;
- Выполнение поиска;
- Авторизация.
Реализован запуск автотестов на следующем окружении:
- remote real device (Browserstack);
- remote emulator device (Selenoid);
- local emulator device (AVD);
- local real device.
Java
Selenide
JUnit
- написание исходного кода;
Gradle
- сборка проекта;
Jenkins
- конфигурация и запуск сборок;
Selenoid
Docker
- запуск автотестов удаленно в изолированных сессиях на билд-сервере;
BrowserStack
- запуск автотестов удаленно на реальном устройстве на сайте BrowserStack;
Appium
Android Virtual Device
- запуск автотестов локально на эмуляторе и реальном устройстве;
Allure Report
- формирование отчетности по итогам тестирования;
Allure TestOps
- создание тестовой документации;
Jira
- создание задачи в таск-трекере.
Конфигурационные данные для запуска тестов зачитываются из properties-файлов. Запуск тестов производится с использованием приведенных ниже консольных команд.
Для удаленного запуска автотестов сконфигурирована ➡️ job ⬅️ в CI Jenkins. В Jenkins job добавлена интеграция с Allure Report и Allure TestOps, а также настроена расслылка оповещений о результатах выполнения тестов в мессенджеры Slack и Telegram.
Запуск на устройстве Browserstack
Команда для запуска:
gradle clean browserstack -DdeviceHost=browserstack
Состав файла browserstack.properties:
user=<значение user с Browserstack>
key=<значение key с Browserstack>
url=http://hub.browserstack.com/wd/hub
appUrl=bs://c700ce60cf13ae8ed97705a55b8e022f13c5827c // для Samsung Galaxy S9
device=Samsung Galaxy S9 // для Samsung Galaxy S9
osVersion=8.0 // для Samsung Galaxy S9
project=Android Project // значение для примера
build=build-1 // значение для примера
name=android_tests // значение для примера
Для прохождения теста на авторизацию на устройстве Browserstack также необходим файл credentials.properties, который сформирован в конфигурации Jenkins job.
Видео теста на авторизацию:
Запуск на эмуляторе билд-сервера с Selenoid проекта autotests.cloud
Команда для запуска:
gradle clean test -DdeviceHost=selenoid
Состав файла selenoid.properties:
url=https://<login>:<password>@selenoid.autotests.cloud/wd/hub/
deviceName=android
osVersion=8.1
locale=en
language=en
appPackage=org.wikipedia.alpha
appActivity=org.wikipedia.main.MainActivity
appPath=https://github.com/wikimedia/apps-android-wikipedia/releases/download/latest/app-alpha-universal-release.apk
Видео теста на прохождение onboarding страниц:
Для локального запуска тестов используется desktop приложение Appium Server. Тесты запускаются на AVD Android Studio (эмуляторе) и на реальном устройстве.
Запуск на эмуляторе
Команда для запуска:
gradle clean test -DdeviceHost=emulator
Состав файла emulator.properties:
url=http://127.0.0.1:4723/wd/hub
deviceName=Pixel_4_API_30
osVersion=11.0
locale=en
language=en
appPackage=org.wikipedia.alpha
appActivity=org.wikipedia.main.MainActivity
appPath=src/test/resources/app-alpha-universal-release.apk
Запуск на смартфоне
Команда для запуска:
gradle clean test -DdeviceHost=smartphone
Состав файла smartphone.properties:
url=http://127.0.0.1:4723/wd/hub
deviceName=<имя устройства> // в cmd: adb devices
osVersion=<версия Android на устройстве>
locale=en
language=en
appPackage=org.wikipedia.alpha
appActivity=org.wikipedia.main.MainActivity
appPath=src/test/resources/app-alpha-universal-release.apk
Видео теста на прохождение onboarding страниц: