После многих лет борьбы с нестабильными API-тестами в CI/CD пайплайнах я наконец нашёл решение. Вот как я построил фреймворк, который снизил долю нестабильных тестов с 10% до менее 1%.
Проблема
Когда я присоединился к команде, наш набор API-тестов был кошмаром:
- 10% нестабильных тестов — тесты случайно падали в CI
- Проблемы с сетью вызывали ложные срабатывания
- Ограничение частоты запросов (ошибки 429) убивало целые прогоны тестов
- Отсутствие валидации схем — изменения API ломались молча
- 45 минут выполнения — блокировало развёртывание
- Утечки секретов в логах CI (кошмар безопасности)
Решение: Многоуровневая архитектура
Я спроектировал трёхуровневую архитектуру, которая разделила ответственность и сделала тесты поддерживаемыми:
