Вступить в клуб →
средняявопросТестирование REST API

Ответ 202 и sleep(2) перед проверкой статуса отчёта: почему тест падает через раз в CI

Тест на формирование отчёта:

resp = requests.post(f"{BASE_URL}/reports", json=payload, headers=AUTH)
assert resp.status_code == 202

time.sleep(2)
report = requests.get(f"{BASE_URL}/reports/{resp.json()['id']}", headers=AUTH).json()
assert report["status"] == "READY"

Локально тест зелёный, в пайплайне падает примерно в трети прогонов: приходит статус IN_PROGRESS.

Что исправить?

  • Поднять паузу до тридцати секунд: раннер медленнее ноутбука, с запасом тест станет стабильным
  • Опрашивать статус отчёта в цикле до готовности с общим таймаутом и понятной ошибкой по его истечении
  • Настроить автоматический перезапуск упавшего теста дважды, это типовая практика
  • Убрать проверку статуса READY: код 202 уже подтверждает, что отчёт сформирован

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела