GithubHelp home page GithubHelp logo

wakeuptheo / mobile-wiki Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 20.93 MB

Mobile Android UI test automation project built on tech stack: Java ٭ Selenide ٭ JUnit5 ٭ Gradle ٭ Jenkins ٭ Appium ٭ BrowserStack ٭ Allure Framework

Java 100.00%
appium-android java junit5 selenide allure-framework

mobile-wiki's Introduction

Автоматизация мобильных UI тестов на Android на примере мобильного приложения Wikipedia

В данном проекте представлен пример 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 страниц:


Результаты выполнения тестов

Отчет в Allure Report


Тестовая документация, сгенерированная в Allure TestOps по итогам прохождения тестов


Задача в таск-трекере Jira с данными, экспортированными из Allure TestOps


Оповещения о статусе сборки в мессенджерах



mobile-wiki's People

Contributors

wakeuptheo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.