template that uses akita library
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gradle/wrapper updated gradle version Dec 5, 2018
src updated gradle version Dec 5, 2018
.gitignore initial commit Oct 9, 2017
HEADER initial commit Oct 9, 2017
LICENSE initial commit Oct 9, 2017
build.gradle
gradle.properties updated Akita version to 3.1.0 with CustomDriverProvider Feb 27, 2018
gradlew initial commit Oct 9, 2017
gradlew.bat initial commit Oct 9, 2017
readMe.md Update readMe.md Dec 8, 2018
settings.gradle

readMe.md

Awesome testing with Akita



Предварительные настройки

1. Проверить,что установлена Java 8

2. Необходимо установить следующие плагины для Intellij IDEA:

  • Cucumber for Java
  • Gherkin
  • Lombok

3. Настроить плагин Lombok:

  • в разделе Build, Execution, Deployment -> Compiler -> Annotation Processors требуется поставить галочку Enable annotation processing
  • в разделе Other settings -> Lombok plugin требуется поставить галочку Enable lombok plugin for this project

4. Скачать webdriver нужной версии

Важно, чтобы версия драйвера соответствовала версии браузера. Узнать о том, какая версия нужна тебе для браузера Chrome, и скачать ее можно с ресурса https://sites.google.com/a/chromium.org/chromedriver/downloads

5. Прописать путь в переменную PATH до папки с драйверами

В зависимости от ОС выполни

  echo %PATH%
  или
  echo $PATH

Для Windows выполни в папке, где сохранен драйвер, команду:

    setx PATH "%PATH%;%CD%"

Для Linux и Mac OS просто скачай драйверы для Chrome или Safari и пропиши путь до папки при необходимости:

 > gedit .bash_profile
 > PATH = /usr/local/bin/drivers:$PATH
 > source .bash_profile

Напишем первый тест?

Структура проекта

  • папка gradle содержит в себе все необходимое для работы градловых команд. Самое важное здесь: distributionUrl=https://services.gradle.org/distributions/gradle-4.2.1-all.zip
  • файл build.gradle содержит информацию о всех подгружаемых библиотеках и плагинах для нашего тестового проекта Плагины для запуска тестов и генерации отчета:
   classpath 'ru.alfalab.gradle:cucumber-reporting-gradle-plugin:0.1.0'
   classpath 'ru.alfalab.gradle:cucumber-parallel-test-gradle-plugin:0.3.1' 

про особенности используемых плагинов можно почитать на github тут:

https://github.com/alfa-laboratory/cucumber-reporting-gradle-plugin; https://github.com/alfa-laboratory/cucumber-parallel-test-gradle-plugin;

В данном месте указывается пакет, где должны лежать классы с новыми пользовательскими шагами:

   generateRunner.glue = ["ru.alfabank.steps", "steps"]
  • параметры по умолчанию для gradle задач указываются в gradle.properties
  • файл settings.gradle содержит только название проекта
  • пакет src/main/java содержит ваши page object-ы, реализацию шагов, сущности для интеграционных тестов и другие дополнительные классы.
  • пакет src/main/java/restBodies используется для хранения файлов с телом запросов. На данную папку жестко привязан шаг отправки запроса.
  • директория src/test предназначена только для хранения feature-файлов с тестами.

Общие шаги

Все базовые шаги находятся в библиотеке в классах DefaultSteps, DefaultApiSteps. Вы можете пользоваться этими шагами при составлении новых сценариев.

Пользовательские шаги

Если есть необходимость реализовать свои специфичные шаги, это можно сделать, создав новый класс в пакете src/main/java/steps.

Проверка верстки web-страниц

В рамках автоматизация тестирования появилась возможность тестировать верстку web-страниц(Desktop, Tablet, Mobile) после интеграции с Galen Framework

Как настроить?

  1. В проекте создать дополнительную папку specs, а в ней images, где будут лежать описания страниц и эталонные скриншоты для сравнения:
  2. В папке specs размещаем файлы с расширением *.spec в которых описываем требования к верстке страниц используя язык Galen Spec Language

Для самих проверок можно воспользоваться одним из готовых шагов:

Тогда страница соответствует ожидаемой спецификации "<string>"
     где в "<string>" указываем ранее описанную спецификацию *.spec
Тогда страница соответствует спецификации "<string>" для экрана "\D+"
     где в "<string>" указываем ранее описанную спецификацию *.spec, а в "\D+" - конкретный экран (desktop, tablet, mobile)

Как воспользоваться возможностями akitaScenario?

Для доступа к общим методам сценариев, потребуется в каждом классе шагов прописать вот такую строку.

Akita akitaScenario = Akita.getInstance();

Для работа с новыми стораницами необходимо в классе страницы унаследоваться от AkitaPage:

extends AkitaPage

Время загрузки страницы

Реализована возможность управления временем ожидания появления элемента на странице. Чтобы установить timeout, отличный от базового, нужно добавить в application.properties строку

waitingAppearTimeout=150000

Отображение в отчете справочной информации

Для того, чтобы в отчете появился блок Output с информацией, полезной для анализа отчета, можно воспользоваться следующим методом

akitaScenario.write("Текущий URL = " + currentUrl + " \nОжидаемый URL = " + expectedUrl);

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

Скачанный проект с тестами нужно открыть как gradle-проект, далее ты можешь запускать тесты одним из удобных тебе способов

  • gradle задачи: Clean, Test, GenerateCucumberReport
  • контекстное меню для конкретного feature-файла, где следует не забывать про установку VM Properties. -Dbrowser=chrome
  • из терминала
  > gradlew clean test -i
  > gradlew clean generateCucumberReport --debug
  > gradlew clean test -Pbrowser=chrome -Pprofile=local -PremoteHub=http://remote/wd/hub
  > gradlew clean test -Dbrowser=chrome -Ptag=@test

Для проектов предусмотрен параллельный запуск всех feature-файлов (для каждого feature-файла создается свой runner), запуск тестов на удаленной машине (-PremoteHub), смена бразера (-Pbrowser=chrome), запуск тестов согласно выставленным на сценариях тегам (-Ptag).

Отчет о тестировании

Akita позволяет генерировать красивые отчеты о прошедщем тестировании. Генерация отчета осуществляется запуском команды

gradlew generateCucumberReport        или gradlew gCR

Отчет создается в папке build/reports. Основным является файл "overview-features.html".

Особенности

  1. Важно!!! Плагин, используемый нами для запуска тестов завязан на путь до feature-файлов src/test/resources/features. Не рекомендуется его изменять.