12

Пост №5. Создание своего test fraamework-а с нуля. Часть 1

Всем привет! Извините за долгое ожидание, не было времени на создание поста. Итак, немного поразмышляв я решил, что теория теорией, а практика куда полезнее и интереснее. И вот я решил начать серию пратических постов по созданию своего test framework-а с нуля. 


Для примера автоматизации был выбран один из простых и наглядных примеров - почтовая система rambler.ru Задачей автоматизации были выбраны одни из основных действий пользователя с почтовой системой, а именно: логин, написание и отправка письма, проверка отправки, перенос письма в трэш.


Перво наперво, необходимо создать чистый проект в IDE. Так как я привык использовать IntelliJ IDEA в качестве IDE, то я решил не изменять своему выбору и создал чистый Maven проект в ней. Далее пришло время определяться с языком. И тут я не стал изменять своему вкусу и опыту и выбрал Java. Но чтобы полностью не оставаться на достигнутых знаниях, решил реализовать свой test framework опираясь на BDD методологию. Мой выбор пал на Cucumber и Gherkin, так как данная связка хорошо совместима с Java. Сборка и запуск тестов будут реализованы с помощью maven.


Сразу хочу зказать, что на данный момент все тесты написаны и test famework готов. Но так как все в один пост не уместиться, то буду постепенно описывать его части.


Итак начнем. С начала хотелось бы представить структуру framework-а и пояснить, почему именно так.

Основными папками (packages) являются java и resources. Java - это package, служащий для хранения реализации тестовой логики и вспомогательных классов. Здесь и будет расположены описание страниц, шаги тестов и разнообразные утилит-классы. Resources - это выполняемый package, в котором расположены сами тесты и конфигурация к ним.

Та же, одним из основополагающих является pom.xml файл. Он служит для подключения всех библиотек и языковых фреймворков, для запуска тестов с определенной конфигурацией, для настройки отчетности. В общем - это корень всего проекта. Для наглядности продемонстрирую отрывок из файла:

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


Итак, в самом начале напишем сами тесты, которые нам необходимо будет реализовывать. Тесты будут написаны на языке Gherkin.

Gherkin - человеко-читаемый язык для описания поведения системы, который использует отступы для задания структуры документа, (пробелы или символы табуляции). Каждая строчка начинается с одного из ключевых слов и описывает один из шагов. Основными ключевыми словами являются Given, When, Then. Сама структура теста выглядит вот так:

А теперь подробнее. Для реализации теста мы создаем файл с расширением .feature. Далее начинаем писать сам тест. Первоначально пишется ключевое слово Feature - оно позволяет понять системе, что это исполняемый файл; так же служит обозначением наименования теста. 

Далее прописывается ключевое слово Scenario/Scenario Outline (первое это обычный сценарий, второе - сценарий, который будет использовать прописанные в Examples тестовые данные) - оно обозначает, что далее будет прописан сценарий теста.

Переходим к ключевым словам в сценарии. Given - как понятно из названия, в нем прописано то, что происходит в начале теста, т.е. первоначальные условия или первоначальные действия (например, логин пользователя в систему с определенными данными). When - здесь прописываются основные действия, которые пользователь совершает с системой, т.е. реализация цели теста (например, отправка письма). Then - прописываются постдействия либо ожидаемый результат исполнения When (например, проверка того, что письмо отправлено). Так же иногда используется ключевое слово And - используется для описания дополнительных действий к предыдущему ключевому слову (например, логаут пользователя из системы).

Если вам необходимо прогнать тест несколько раз, допустим, под разными пользователями, то необходимо использовать ключевое слово Examples - оно как раз служит для прописания значения необходимым параметрам теста (напрмер, логин и пароль пользователя). Для того, чтобы эти значения подцепились тестом, необходимо указать параметр теста в формате "<параметр>". По расцветке данного параметра можно будет понять, что он подцепил указанные значения из Examples.

И для наглядности, еще один пример теста:

Заключение.

Итак. В данном посте я начал описывать на практике реализацию создания test framework, рассказал об основных packages и о том, как создавать тесты используя язык Gherkin. В дальнейшем буду постепенно описывать структуру тестов.


З.Ы. Всем спасибо за внимание и интерес. Надеюсь было познавательно и не слишом мало. Буду очень рад вашим коментариям.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества