Java: Selenium

Теория: Структуризация тестов

Когда тестов становится много, их важно структурировать. В этом уроке разберем базовый подход: разносить логику по классам, использовать @BeforeEach и @AfterEach, а также общие утилиты.

Разделение логики

Обычно тесты группируют по функциональности и размещают в отдельных классах:

src/
  test/
    java/
      tests/
        LoginTest.java
        ProfileTest.java

Так проще поддерживать и расширять набор тестов.

Жизненный цикл теста

JUnit предоставляет аннотации для настройки окружения:

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

class BaseTest {
    protected WebDriver driver;

    @BeforeEach
    void setUp() {
        driver = new ChromeDriver();
    }

    @AfterEach
    void tearDown() {
        driver.quit();
    }
}

Так браузер создается для каждого теста и корректно закрывается после выполнения.

Сессия браузера на тест и на класс

Чаще всего сессия создается на каждый тест. Это снижает риск пересечений между сценариями. В некоторых случаях можно создавать браузер один раз на класс с @BeforeAll и @AfterAll, но это повышает риск зависимости тестов друг от друга.

Утилиты и базовые классы

Повторяющиеся действия удобно выносить в базовые классы и утилиты, например создание тестового пользователя или логин:

class AuthHelper {
    static void login(WebDriver driver, String user, String pass) {
        driver.get("https://example.com/login");
        // шаги авторизации
    }
}

Так тесты остаются короткими и читаемыми.

Рекомендуемые программы

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845