Java QA Patterns Catalog
Каталог паттернов проектирования, применяемых в автоматизированном функциональном тестировании на Java.
Каждый модуль — самостоятельный проект, демонстрирующий один паттерн с рабочими примерами кода.
Требования
- Java 21
- Gradle 9+
- Google Chrome (для модулей с Selenium)
Сборка и запуск тестов
# Все модули
./gradlew test
# Конкретный модуль
./gradlew :page-object-model:test
Паттерны
| Модуль | Паттерн | Описание |
|---|---|---|
| page-object-model | Page Object Model | Инкапсуляция локаторов и действий страницы в отдельном классе |
| page-factory | Page Factory | Декларативная инициализация элементов через @FindBy
|
| fluent-interface | Fluent Interface | Цепочки вызовов для читаемого тестового кода |
| builder | Builder | Создание сложных тестовых объектов с дефолтными значениями |
| factory | Factory / Abstract Factory | Создание WebDriver без привязки к конкретному браузеру |
| singleton | Singleton | Единственный экземпляр драйвера / конфигурации |
| screenplay | Screenplay | Моделирование действий пользователя через Actor–Task–Question |
| template-method | Template Method | Единый жизненный цикл теста в базовом классе |
| facade | Facade | Скрытие деталей подготовки тестовых данных |
| strategy | Strategy | Переключаемые стратегии ожидания элементов |
| decorator | Decorator | Добавление логирования и retry без изменения кода |
| observer | Observer / Listener | Скриншоты и отчёты через JUnit 5 Extension |
| repository | Repository | Абстракция источника тестовых данных |
| chain-of-responsibility | Chain of Responsibility | Цепочка обработчиков HTTP-ответа |