Ответ
На последнем проекте мы выстроили полноценный CI/CD-конвейер для автоматического запуска тестов.
Стек технологий:
- CI/CD Сервер: GitLab CI.
- UI-тесты: Selenium WebDriver 4 + JUnit 5, Page Object Model.
- API-тесты: RestAssured.
- Контейнеризация: Запуск браузеров в Docker-контейнерах через Selenoid.
- Отчетность: Allure Report, интеграция с GitLab.
Сценарии запуска:
- На каждый Pull Request: Запускался smoke-сет API и UI-тестов для проверки критичного функционала.
- Ночные регрессионные прогоны: Полный набор тестов запускался по расписанию.
- Ручной запуск: Возможность запустить конкретный тест или набор через GitLab UI с параметрами (например,
ENV=staging).
Пример .gitlab-ci.yml для запуска UI-тестов:
stages:
- test
ui_tests:
stage: test
image: maven:3.8-openjdk-11
services:
- selenoid/chrome:latest
variables:
SELENOID_URL: "http://selenoid:4444/wd/hub"
script:
- mvn clean test -Dtest=UISmokeTest -Dbrowser=chrome
artifacts:
when: always
paths:
- target/allure-results
after_script:
- mvn allure:report
Результат: После каждого прогона в GitLab появлялся Allure-отчет с деталями по каждому тесту: шаги, скриншоты на падения, логи. Это позволяло быстро локализовать проблему.