Фреймворк построен по слоистой архитектуре.
- Слой тестов: Содержит тестовые классы и методы, описывающие сценарии тестирования. Используется тестовый фреймворк (JUnit 5 / TestNG) для аннотаций и выполнения тестов.
- Слой страниц (Page Object Model): Реализует паттерн Page Object Model (POM). Каждый класс страницы представляет собой отдельную веб-страницу или ее часть и содержит методы для взаимодействия с элементами и выполнения действий.
- Слой утилит: Содержит вспомогательные классы и функции для выполнения общих задач, таких как работа с тестовыми данными (чтение из файлов, баз данных), логирование (SLF4j), скриншоты, работа с конфигурацией (OwnerR) и т.д.
- Слой драйвера: Абстрагирует работу с веб-драйвером (например, Selenium WebDriver). Отвечает за инициализацию, настройку и управление экземплярами драйвера для различных браузеров и платформ (напрямую или через Selenide).
- Отчётность: Интегрирована с системой отчётности (Allure Report) для генерации подробных отчетов о выполнении тестов, включая шаги, скриншоты и логи.
- CI/CD интеграция: Фреймворк настроен для запуска в CI/CD конвейере (Jenkins / GitLab CI) с использованием инструментов сборки (Maven / Gradle).
Дополнительно могут быть включены слои для работы с API (REST Assured), базами данных или мобильными приложениями, в зависимости от специфики тестируемого продукта. Использование зависимостей управляется при помощи системы управления зависимостями (Maven / Gradle).
Пример структуры проекта:
plaintext