/wikipedia_mobile_test

UI automated tests for the Wikipedia mobile application using Selenide, Appium, and Allure frameworks, the REST Assured library for displaying videos in the report, BrowserStack, Android Studio, and Selenoid for running the application on corresponding stands, Jenkins for running tests, integration with Allure TestOps, Jira, and Telegram

Primary LanguageJava

Проект по автоматизации тестирования UI для мобильного приложения Wikipedia

Содержание

Покрытый функционал

Технологический стек

Запуск тестов из терминала

Запуск тестов в Jenkins

Отчет о результатах тестирования в Allure Report

Интеграция тестов c тест-менеджмент системой Allure TestOps

Интеграция тестов c таск-трекер системой Jira

Уведомления в Telegram с использованием бота

Пример запуска теста в BrowserStack

Пример запуска теста в Selenoid

Покрытый функционал

Разработаны автотесты на UI.

UI

  • Отображение результатов поиска
  • Открытие страницы из результатов поиска
  • Проверка первых четырех экранов Getting Started

Вернуться к содержанию 🔝

Технологический стек

В данном проекте автотесты написаны на Java с использованием фреймворков Selenide и Appium для UI-тестов, и библиотеки REST Assured для отображения видео в отчете.

BrowserStack выполняет запуск приложения на удаленном мобильном Android-устройстве.

Selenoid выполняет запуск приложения на удаленном сервере в контейнерах Docker.

Allure Report формирует отчет о запуске тестов.

Для автоматизированной сборки проекта используется Gradle.

В качестве библиотеки для модульного тестирования используется JUnit 5.

Jenkins выполняет запуск тестов.

Автотесты интегрируются с тест-менеджмент системой Allure TestOps и таск-трекер системой Jira.

После завершения прогона отправляются уведомления с помощью бота в Telegram.

Вернуться к содержанию 🔝

Запуск тестов из терминала

🕹️ Запуск тестов

gradle clean ${TASK}
-DdeviceHost=${DEVICE_HOST}
ℹ️ Для запуска тестов должны существовать следующие файлы ⇩
👈 browserstack.properties

В файле должны быть расположены:

  • user_name и access_key – данные, расположеные в настройках BrowserStack для App Automate
  • appURL – ссылка на приложение, для которого будут запускаться тесты
  • remoteURL – адрес удаленного сервера, где будут запускаться тесты
  • device – имя девайса, на котором будут запускаться тесты
  • os_version – версия операционной системы девайса
  • project – название проекта
  • build – название сборки
  • name – название группы тестов
👈 selenoid.properties

В файле должны быть расположены:

  • selenoidURL – адрес удаленного сервера, на котором будут запускаться тесты
  • login и password – данные для авторизации на удаленном сервере
  • deviceName – имя девайса, на котором будут запускаться тесты
  • platformName – имя платформы, на которой будут запускаться тесты
  • version – версия операционной системы девайса
  • locale – локализация приложения (код по стандарту ISO-639)
  • language – язык приложения (код по стандарту ISO-639)
  • appPackage – идентификатор пакета приложения
  • appActivity – название основной активности приложения
  • appURL – ссылка на приложение, для которого будут запускаться тесты
  • videoStorageURL – адрес хранилища видео выполненных тестов
👈 emulation.properties

В файле должны быть расположены:

  • deviceName – имя девайса, на котором будут запускаться тесты
  • platformName – имя платформы, на которой будут запускаться тесты
  • version – версия операционной системы девайса
  • locale – локализация приложения (код по стандарту ISO-639)
  • language – язык приложения (код по стандарту ISO-639)
  • appPackage – идентификатор пакета приложения
  • appActivity – название основной активности приложения
  • app – путь до приложения, для которого будут запускаться тесты
  • remoteURL – адрес удаленного сервера, на котором будут запускаться тесты
👈 real.properties

В файле должны быть расположены:

  • deviceName – имя девайса, на котором будут запускаться тесты
  • platformName – имя платформы, на которой будут запускаться тесты
  • version – версия операционной системы девайса
  • locale – локализация приложения (код по стандарту ISO-639)
  • language – язык приложения (код по стандарту ISO-639)
  • appPackage – идентификатор пакета приложения
  • appActivity – название основной активности приложения
  • app – путь до приложения, для которого будут запускаться тесты
  • remoteURL – адрес удаленного сервера, на котором будут запускаться тесты

🕹️ Параметры сборки

👈 TASK – список тестов, сгруппированных по параметру тега. В зависимости от выбранного параметра, будут запускаться определенные группы тестов.

Доступные варианты:

  • browserstack – запуск тестов с тегом browserstack на платформе BrowserStack
  • selenoid – запуск тестов с тегом selenoid на удаленном сервере Selenoid
  • emulation – запуск тестов с тегом emulation на локальном эмуляторе устройства
  • real – запуск тестов с тегом real на реальном устройстве при его подключении через USB
👈 DEVICE_HOST – список параметров для запуска приложения. В зависимости от выбранного параметра, приложение будет запускаться на соответствующих стендах.

Доступные варианты:

  • browserstack – запуск приложения на удаленном мобильном Android-устройстве на платформе BrowserStack
  • selenoid – запуск приложения на удаленном сервере Selenoid
  • emulation – запуск приложения на локальном эмуляторе мобильного Android-устройства в Android Studio IDE
  • real – запуск приложения на реальном устройстве при его подключении через USB

🕹️ Формирование отчета Allure

allure serve build/allure-results

❗ Для формирования отчета должен быть установлен Allure.

Вернуться к содержанию 🔝

Запуск тестов в Jenkins

🚀 Для запуска тестов в Jenkins необходимо выполнить следующие шаги:

  1. Открыть сборку Jenkins
  2. Нажать на таск "Собрать с параметрами"
  3. Указать значения параметров
  4. Нажать на кнопку "Собрать"

🚀 Для формирования отчета о прохождении тестов в Allure Report необходимо выполнить следующий шаг:

  1. После выполнения сборки нажать на любую ссылку/иконку "Allure Report"

Вернуться к содержанию 🔝

Отчет о результатах тестирования в Allure Report

Allure-framework используется в качестве инструмента для построения отчетов о прогоне автотестов. Он позволяет получить информацию о ходе выполнения тестов, а также прикрепить скриншоты, логи и видео к формируемому отчету. Имеется возможность указать различные теги, приоритеты и прочую сопутствующую информацию для тестов.

👈 Страница Overview

Сраница Overview является главной страницей Allure-отчета.

Состоит из следующих блоков:

  • Блок ALLURE REPORT – включает в себя дату и время прохождения теста, общее количество прогнанных кейсов, а также диаграмму с указанием процента и количества успешных, упавших и сломавшихся в процессе выполнения тестов.

  • Блок TREND – показывает тренд прохождения тестов от сборки к сборке.

  • Блок SUITES – показывает распределение результатов тестов по тестовым наборам.

  • Блок ENVIRONMENT – показывает тестовое окружение, на котором запускались тесты.

  • Блок CATEGORIES – показывает распределение неуспешно прошедших тестов по видам дефектов.

  • Блок FEATURES BY STORIES – показывает распределение тестов по функционалу, который они проверяют.

  • Блок EXECUTORS – показывает исполнителя текущей сборки. Если выполнение производилось на инструменте CI (например, на Jenkins), то будет предоставлена информация о джобе и номере сборки.

🎯 Главная страница Allure-отчета

👈 Страница Graphs

На странице Graphs можно получить информацию о тестовом прогоне в графическом виде: статус прогона, распределение тестов по критичности, длительности прохождения, перезапускам, категориям дефектов и так далее.

🎯 Информация о тестовом прогоне в графическом виде

👈 Страница Behaviors

На странице Behaviors тесты сгруппированы по проверяемому функционалу (Epic, Feature, Story).

🎯 Группировка тестов по проверяемому функционалу

👈 Прочие страницы
  • Страница Categories – данная страница предоставляет информацио о распределении дефектов по их видам.

  • Страница Suites – на данной странице представляется стандартное распределение выполнявшихся тестов по тестовым наборам или классам, в которых находятся тестовые методы.

  • Страница Timeline – данная страница визуализирует временные рамки прохождения каждого теста.

  • Страница Packages – на этой странице тесты сгруппированы по пакетам, в которых лежат тестовые классы.

Вернуться к содержанию 🔝

Интеграция тестов c тест-менеджмент системой Allure TestOps

Allure TestOps используется для хранения всех авто и ручных тестов, запусков и их результатов, а также статистики и отчетов.

🧩 Основной дашборд

🧩 Кастомный дашборд

🧩 Дашборд по типам тестов

🧩 Дашборд по стендам

🧩 Дашборд по команде

🧩 Запуски тестов

🧩 Результаты запуска тестов

🧩 Сгруппированные тест-кейсы по проверяемому функционалу

Вернуться к содержанию 🔝

Интеграция тестов c таск-трекер системой Jira

В проекте реализована интеграция с Jira, что позволяет добавлять в задачи тест-кейсы, запуски и их результаты.

Вернуться к содержанию 🔝

Уведомления в Telegram с использованием бота

После завершения сборки специальный бот, созданный в Telegram, автоматически обрабатывает и отправляет сообщение с отчетом о прогоне. Фреймворк также поддерживает уведомления по электронной почте, Slack, Skype и Mattermost.

Вернуться к содержанию 🔝

К каждому тесту в отчете прилагается видео. Примеры таких видео представлены ниже.

Пример запуска теста в BrowserStack

Вернуться к содержанию 🔝

Пример запуска теста в Selenoid

Вернуться к содержанию 🔝