/TradaysAutotests

Автоматизированные тесты для мобильного приложения Tradays

Primary LanguageJava

Описание

Тестовое задание для компании MetaQuotes.

Задание

Реализовать сценарий для фильтрации событий в Android приложении Tradays:

  1. Открыть приложение Tradays.
  2. Убедиться, что язык приложения выбран Английский.
  3. Отфильтровать события экономического календаря по следующим параметрам:
    Importance | Country
    Medium | Switzerland
  4. Открыть первое Switzerland событие в отфильтрованном списке.
  5. Проверить, что приоритет и страна отображаемого события соответствуют выбранным фильтрам.
  6. Вывести в лог историю события за последние 12 месяцев в виде таблицы.

Пример таблицы:
| Date | Actual | Forecast | Previous |
| 31 May 2019 | -0.7% | 0.3% | 0.0% |

Используемые инструменты

  • Java 8
  • Appium
  • Cucumber
  • Allure
  • Apache Maven

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

Тест запускается командной mvn clean test
Запуск теста в режиме debug mvn clean test -DforkCount
Для создания Allure-отчета используется команда mvn site - отчет будет сгенерирован по пути target/site/allure-maven-plugin/index.html

Конфигурация запуска

Для конфигурации запуска используется файл environment.properties, который находится в папке <корень проекта>/src/main/resources параметры:

  • device - наименование телефона
  • platform - наименование операционной системы, например, Android
  • platformVersion - версия операционной системы
  • page.objects - пакет с PageObject классами
  • appium.server - адрес сервера, на котором поднят Appium сервер
  • appPackage - основной пакет приложения, net.metaquotes.economiccalendar
  • appActivity - Activity приложения, которое открывается при запуске, net.metaquotes.ui.MainActivity
  • driver.timeouts.implicitlywait - таймаут неявного ожидания элеентов
  • page.timeouts.wait - таймаут ожидания загрузки страницы: ожидание исчезнованеия лоадера
  • application - относительный путь до apk файла тестируемого приложения

Скриншоты отчета

Для удобства разместил в проекте скрины отчета Allure

Логирование выполнения теста

Для логирования используется библиотека slf4j. Конфигурационный файл log4j.properties находится в папке <корень проекта>/src/main/resources
Лог файл можно посмотреть по ссылке log

Основные пакеты проекта

  • src/main/java
    • annotation - аннотации, которые используется в организации структуры PageObject
    • core - ядро проекта: инициализация PageObject, поиск элементов, типизация элементов, конфигурация и т.д.
    • cucumber - конвертеры для шагов Cucumber
    • hook - действия, которые будут выполнены перед/после выполнением теста
    • logging - логирование старта теста, шагов Cucumber и Allure
    • page - PageObject классы, описывающие страницы тестируемого приложения
    • steps - шаги, которые используются при разработка автоматизированного теста
  • src/main/resources
    • META-INF/services - подключение кастомного логгера шагов Allure
    • environment.properties - файл с конфигурацией запуска
    • log4j.properties - файл с конфигурацией логгера
  • src/test/java
    • TestRunner - класс, который запускает тесты
  • src/test/resources
    • features - разработанные автоматизированные тесты

Что еще можно сделать

  • поиск элементов, если до них необходимо скроллить. Сейчас это сделано только для коллекций и списков
  • автоматический запуск appium сервера
  • снятие скриншота, если тест закончился с ошибкой
  • избавиться от наименования пакета разработчика, если выполняется поиск по id, то есть чтобы вместо net.metaquotes.economiccalendar:id/tab_history писать в локаторе tab_history
  • параллельное выполнение тестов, когда их станет больше одного