Ответ
Да, несколько раз. Последний раз я разрабатывал фреймворк для тестирования веб-приложения на стеке Java 11 + Selenium WebDriver + JUnit 5 + RestAssured. Целью было создать единое решение для UI, API и интеграционных тестов.
Ключевые модули и их реализация:
// 1. Управление драйвером (Singleton + ThreadLocal для параллелизма)
public class WebDriverManager {
private static ThreadLocal<WebDriver> driver = new ThreadLocal<>();
public static WebDriver getDriver() {
if (driver.get() == null) {
driver.set(new ChromeDriver(setOptions()));
}
return driver.get();
}
}
// 2. Базовый класс теста с аннотациями JUnit 5 и настройкой Allure
@ExtendWith({AllureJunit5.class, TestWatcherExtension.class})
public class BaseTest {
@BeforeEach
public void setUp(TestInfo info) {
DriverManager.getDriver().get(ConfigProvider.getBaseUrl());
Allure.step("Открыта базовая страница: " + ConfigProvider.getBaseUrl());
}
}
// 3. Page Object с использованием Lombok для инициализации элементов
@Page
public class LoginPage {
@FindBy(id = "username") private WebElement usernameField;
@FindBy(id = "password") private WebElement passwordField;
@FindBy(css = "[data-qa='login-btn']") private WebElement loginButton;
public HomePage login(String user, String pass) {
usernameField.sendKeys(user);
passwordField.sendKeys(pass);
loginButton.click();
return new HomePage();
}
}
Структура проекта:
test-framework/
├── src/main/java/core/
│ ├── driver/ # WebDriverManager, CapabilitiesFactory
│ ├── config/ # Парсинг .yaml конфигов для разных сред
│ ├── listeners/ # Кастомные листенеры для логирования и скриншотов
│ └── utils/ # Helpers для работы с БД, генерации данных, JSON
├── src/test/java/
│ ├── api/ # Тесты REST API (RestAssured)
│ ├── ui/pages/ # Page Objects
│ ├── ui/tests/ # UI-тест-классы
│ └── testdata/ # Провайдеры данных для @ParameterizedTest
└── pom.xml # С зависимостями и плагинами для Surefire, Allure
Фреймворк был интегрирован с Jenkins Pipeline, поддерживал параллельный запуск через maven-surefire-plugin и формировал интерактивные отчёты в Allure Report.