Coder Social home page Coder Social logo

tradaysautotests's Introduction

Описание

Тестовое задание для компании 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
  • параллельное выполнение тестов, когда их станет больше одного

tradaysautotests's People

Contributors

g1orius 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.