Готовый шаблон для тестирования с использованием Spring
Представляю вам — готовый шаблон для тестирования с использованием 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 — это пожалуй один из самых популярных фреймворк для автоматизированного тестирования реализующий behavior-driven development подход.
selenide — это вспомогательный фреймворк для написания изящных UI тестов на основе selenium.
WebDriverManager — который берет на себя всю грязную работу по
добавлению переменных для проекта System.setProperty («webdriver.browser.driver»,»/path_to_driver/driver»);
Spring jdbc — упрощает получение доступа к реляционным BD и облегчает работу с SQL.
Скачиваем https://github.com/andewBr/seleniumWithSpring
для запуска проекта необходимо указать в строке VM POTIONS:
-Dspring.profiles.active=dev-andrew
структура пакетов и классов
package (config) — конфигурация проекта.
class WebdriverBeanConfig — самый главный класс, происходит инициализация WebDriver.
class DBBeanConfig — класс в котором мы создаем bean для работы с BD, сообщаем Spring где брать dataSource
class PropertiesConfig — класс для работы с данными в древовидном виде
можно искать элемент и так
// @Value("${habr.url}")
// private String url;
но так мне нравиться больше))
@Autowired
private PropertiesConfig property;
property.getWeb().getBaseurl();
package (page) — пакет для хранения локаторов, web элементы — (как написано в head first java «программируйте на уровне интерфейса.») чем мы и займемся в дальнейшем)
interface Page — метод Map getElements ();
все остальные классы находящиеся в данном пакете, возвращают MAP<ключ, сам элемент>
package (service)
CommanService — класс для работы с SelenideElement в котором мы реализуем работу со страницей
класс BasePageService наследуем от класса CommonService и обрабатываем элементы.