Автоматизированный тест с Selenide и TestNG
Подключение TestNG и Selenide.
Создаем обычный Maven проект. В pom.xml добавляем dependencies.
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.codeborne</groupId>
<artifactId>selenide</artifactId>
<version>4.9.1</version>
<scope>test</scope>
</dependency>
</dependencies>Код теста.
В src → test → java создаем class OurFirstTest. Это и будет наш тест, который кликает на кнопку, переходит на другую страницу и проверяет текст.
public class OurFirstTest {
@BeforeTest
private void settings() {
Configuration.browser = "chrome";
}
@Test
public void checkSecondPageAboutText() {
open("https://ereoo.github.io/main-page");
$(By.id("go_second")).click();
$(By.id("about")).shouldHave(text("This is second test page \"SecondPage\". First test page is \"MainPage\". This is a test page filled with common HTML elements. Feel free to practice create your auto-tests."));
}
@AfterTest
private void close() {
getWebDriver().close();
}
}Рассмотрим аннотации TestNG:
- @BeforeTest - метод будет выполнен перед тестом.
- @Test - метод является тестом.
- @AfterTest - метод выполнятся после теста.
Разберем методы под аннотациями:
- private void settings() - указываем, что тест будет запущен на Google Chrome (по умолчанию FireFox).
- public void checkNoSearchResult() - открываем сайт, вводим в поле поиска qweqwe, нажимаем найти, проверяем ответ сайта.
- private void close() - закрываем драйвер.
В Selenide есть shutdown driver метод, но на тестовой машине (Windows 10, i7 7700k, 16gb) было замечено, что без getWebDriver().close() после прогона тестов загрузка CPU 100% из за незакрытых браузеров. macOS отреагировал на отсутсвие метода закрытия более лояльно, но считаю, что лучше прописать driver.close().
Исходный код можно найти тут: GitHub project: WEB-QA.
Branch: bad_simple_test
PREVIOUSPage object pattern и BaseTest