Готовый шаблон для тестирования с использованием Spring

0

Хотел представить Вам — готовый шаблон для тестирования с использованием Spring.

Введение

Цель этой статьи показать, что писать автотесты со Spring проще нежели на чистой Java.Так же хочу продемонстрировать, насколько Java + Spring упрощает жизнь тестировщикам.

Для кого эта статья

Если у вас стоит необходимость поддержки нескольких профайлов (пр. WEB и MOBILE, COM и RU) — то Spring, как раз для вас.Данный шаблон будет интересен тем кто хочет подять свою реализацию, но не знает с чего начать.

Что вы получете посте прочтения

После прочтения у вас будет представление о том, как реализовать свой шаблон на Java + Spring.

Что необходимо установить.

Java 11.maven-3.6.1 и старше.

Приимущества Spring

Spring достаточно популярен, если у вас в автоматизации появится Spring — разработчики конечно скажут вам спасибо.))Я думаю, что Spring в тестировании встречается достаточно редко, т.к. задачи по автоматизации никто не отменял, а временя на развитие, как правило не так много или его совсем нет.в Spring есть много различных проектов, один из них это Spring Boot — который позволяет конфигурировать Spring автоматически и многие вещи происходят под копотом, написав 3-и строчки мы получаем готовый проект.

Что входит в проект

[Cucumber](https://cucumber.io/) – это пожалуй один из самых популярных фреймворк для автоматизированного тестирования реализующий [ behavior-driven development](https://en.wikipedia.org/wiki/Behavior-driven_development) подход. [selenide](https://ru.selenide.org/) — это вспомогательный фреймворк для написания изящных UI тестов на основе selenium.[WebDriverManager](https://github.com/bonigarcia/webdrivermanager/blob/master/README.md)- который берет на себя всю грязную работу по добавлению переменных для проекта System.setProperty(«webdriver.browser.driver», “/path_to_driver/driver”); Spring jdbc — упрощает получение доступа к реляционным BD и облегчает работу с SQL.

Скачиваем github.com/andewBr/seleniumWithSpring

для запуска проекта необходимо указать в строке VM POTIONS: -Dspring.profiles.active=dev-andrew![](https://habrastorage.org/webt/c9/so/su/c9sosuckqk0ox3sq49kxld9r8by.png)

структура пакетов и классов

package (config) — конфигурация проекта.

class WebdriverBeanConfig — самый главный класс, происходит инициализация WebDriver.

![](https://habrastorage.org/webt/ll/lx/d4/lllxd4ficfk5cei9xutbsosxwia.png)

class DBBeanConfig — класс в котором мы создаем bean для работы с BD, сообщаем Spring где брать dataSource.

![](https://habrastorage.org/webt/hx/7n/ef/hx7nefr_z6rq4rcxa8hutjos_5k.png)

class PropertiesConfig — класс для работы с данными в древовидном виде

можно искать элемент и так // Value(“${habr.url}”) // private String url; но так мне нравиться больше)) Autowired private PropertiesConfig property; property.getWeb().getBaseurl();![](https://habrastorage.org/webt/p3/tc/bm/p3tcbme5vnyexqz3r3frogcxjqm.png)

package (page) — пакет для хранения локаторов,web элементы — (как написано в head first java «программируйте на уровне интерфейса.») чем мы и займемся в дальнейшем)

interface Page — метод Map<String, SelenideElement> getElements();

![](https://habrastorage.org/webt/6f/qj/04/6fqj04pdfuypwy8szko1osn1t8y.png)все остальные классы находящиеся в данном пакете, возвращают MAP![](https://habrastorage.org/webt/vm/ka/p0/vmkap0hzm4vmhqkwj-9p-klf278.png)

package (service)

CommanService — класс для работы с SelenideElement в котором мы реализуем работу со страницей.

![](https://habrastorage.org/webt/l4/lv/sk/l4lvskzukolauedbwdvratkwbcu.png) класс BasePageService наследуем от класса CommonService и обрабатываем элементы.![](https://habrastorage.org/webt/xp/-i/8o/xp-i8oysd5amrs1etxquzseut08.png)

package step — работа с feature файлами

![](https://habrastorage.org/webt/iz/lj/sj/izljsjszlqvwmgy2h8r3og2z9pi.png)

resources.features -> сами features файлы

![](https://habrastorage.org/webt/ve/o7/af/veo7afqfq4isgzopau-kv7mswju.png)

You might also like More from author