UI Автотесты для интернет-магазина Kinash.ru
Этот проект представляет собой масштабируемую и гибко настраиваемую систему автотестирования пользовательского интерфейса интернет-магазина, разработанную с акцентом на читаемость, поддержку и расширяемость. Проект демонстрирует глубокую интеграцию с современным стеком инструментов автоматизации и подходит как для локального запуска, так и для CI/CD окружений.
- ✅ Поддержка локального и удалённого запуска (через Selenoid)
- ✅ Гибкий выбор браузеров: Chrome, Firefox
- ✅ Настраиваемая параллельность тестов через Jenkins/Gradle
- ✅ Полная интеграция с Allure (видео, логи, скриншоты)
- ✅ Расширенное логирование через Selenide Custom Listener
- ✅ Обработка нестандартных ошибок через кастомные исключения
- ✅ Детальный tag-based запуск групп тестов (
Smoke
,Regression
,Cart
, и др.) - ✅ Отчётливое разделение слоёв:
Pages
,Components
,Config
,Extensions
,Helpers
- 🔧 TestWatcher (JUnit Extension): автоматическое прикрепление всех артефактов к отчету при падении.
- 📂 Owner + env-переменные: гибкое управление окружениями.
- 🔭 Selenide Logger: каждый шаг пишется в Allure + stdout (для отладки).
- ❗ Custom Exceptions: подробные сообщения об ошибках с URL, действием и локатором.
- Проверка отображения главной страницы (лого, футер, заголовок)
- Поиск по товарам с использованием параметризованных тестов
- Фильтрация товаров по бренду в категории
- Добавление товара в корзину
- Очистка корзины
- Проверка характеристик и отзывов в карточке товара
IntelliJ IDEA |
Java |
Gradle |
JUnit5 |
Selenide |
Selenoid |
Jenkins |
Github |
Allure Report |
src
└── test
├── java
│ ├── config # Конфигурация WebDriver, env, OWNER
│ ├── data # Enums и тестовые данные
│ ├── exceptions # Кастомные исключения (например, ElementNotFound)
│ ├── extensions # JUnit TestWatcher для attach'ей на fail
│ ├── helpers # Скриншоты, видео, консоль и source -> Allure
│ ├── listeners # Кастомный Selenide listener с Allure-интеграцией
│ ├── pages # PageObject + Fluent API
│ │ └── components # Подкомпоненты и шапки, меню, и т.п.
│ └── tests # Тестовые сценарии
│ ├── regress # Регрессионные тесты
│ └── smoke # Smoke-сценарии
└── resources
└── properties # Настройки окружений: local / remote
Локально должны быть заданы параметры в remote.properties
gradle clean test -Denv=remote
gradle clean test -Dbrowser=firefox -DbrowserSize=1920x1080
gradle clean cart_tests -DparallelRun=true -Dthreads=4
allure serve build/allure-results
Параметры с помощью которых можно запустить сборку в Jenkins:
Каждое падение сопровождается:
- Скриншотом
- HTML Source страницы
- Консольными логами браузера
- Видео (если
isRemote=true
и Selenoid)