Ответ
На проекте по разработке SaaS-платформы мы выстроили двухуровневую систему автоматизации с фокусом на API и критическом UI.
Стек технологий:
- API-тесты: Postman → Newman + Jenkins. Коллекции Postman с комплексными сценариями (цепочки запросов, работа с токенами).
- UI-тесты: Selenide + JUnit 5 для критических сценариев "счастливого пути".
- Нагрузочное тестирование: JMeter для ключевых эндпоинтов.
- Отчетность: Allure Framework для детализированных отчетов с шагами, скриншотами и логами.
Процесс и интеграция:
- Локальная разработка: Пишу тесты в IDEA, запускаю через Maven (
mvn clean test). - CI/CD (Jenkins): При пуше в ветку
developзапускается пайплайн:pipeline { agent any stages { stage('API Tests') { steps { sh 'newman run collections/regression.json --reporters allure' } } stage('UI Tests') { steps { sh 'mvn clean test -Dsuite=smoke' } } stage('Allure Report') { steps { allure([...]) } } } } - Работа с данными: Для изоляции тестов использовали отдельную тестовую БД, которую наполняли фикстурами перед прогоном и очищали после. Для UI-тестов применяли механизм
@BeforeEachдля логина и@AfterEachдля логаута.
Пример API-теста из коллекции Postman:
В коллекции был запрос Create Order, который:
- Брал токен из переменной окружения.
- Создавал заказ через
POST /api/orders. - Валидировал статус-код 201 и схему JSON-ответа.
- Сохранял
orderIdв переменную для следующего запросаGET /api/orders/{{orderId}}.
Итог: Такой подход позволил быстро получать обратную связь о регрессии после каждого коммита и держать долю автоматизированных тестов на уровне ~70%.