После деплоя разом падают 287 из 942 e2e-тестов — определите причину по выводу CI
Сразу после рутинного продового деплоя большой кусок e2e-набора краснеет. Тесты в этом релизе никто не трогал. Вам дают только сводку прогона CI и один скриншот падения — перезапустить набор пока нельзя.
Ограничения: рассуждайте только по данным ниже; не предполагайте конкретный баг продукта. Объясните единственную наиболее вероятную причину такой сигнатуры падений и что вы проверите, чтобы её подтвердить.
CI run #4821 branch: main deploy: release-2.14.0
Suite: e2e-web 942 tests 287 FAILED 655 passed duration 41m
FAILED (выборка):
checkout/adds_item_to_cart TimeoutException: waited 30s for [data-test=cart-badge]
checkout/applies_promo TimeoutException: waited 30s for [data-test=promo-input]
account/updates_profile TimeoutException: waited 30s for [data-test=save-btn]
... ещё 284, все TimeoutException в ожидании наличия элемента
PASSED (выборка): login/*, static-pages/*, health/ping
Скриншот (checkout/adds_item_to_cart): в теле страницы
"502 Bad Gateway — upstream connect error"
Первое падение: 14:02:11 · Деплой завершён: 14:02:04
Определите причину.
Это не 287 независимых регрессий — у них одна сигнатура: каждое падение — таймаут ожидания элемента, на скриншоте 502 Bad Gateway, а первое падение — через секунды после завершения деплоя. Приложение не было готово к старту прогона. Это проблема готовности окружения: добавьте health-check-гейт перед e2e и перезапустите.
- ✗Читать массовые падения как множество независимых регрессий
- ✗Игнорировать, что у всех падений одна сигнатура ошибки
- ✗Упускать 502 и тайминг деплой-к-падению
- →Какой сигнал готовности должен гейтить старт набора после деплоя?
- →Как подтвердить, что виновато приложение, а не тесты?
Диагноз читается из сигнатуры, а не из отдельных тестов.
Сгруппируйте падения — они все одинаковы:
287 × TimeoutException: waited 30s for [data-test=...]
screenshot → "502 Bad Gateway — upstream connect error"
first failure 14:02:11 · deploy finished 14:02:04 (Δ = 7s)
passed: login/*, static-pages/*, health/ping
Один класс ошибки на всех, ответ 502 от апстрима и старт через 7 секунд после деплоя означают: приложение (или его зависимость) ещё поднималось, когда начался прогон. Прошли только статика, логин и health — они не ходят в упавший апстрим.
Это не 287 регрессий. Подтверждение: перезапуск после прогрева обычно зелёный. Чините на уровне пайплайна — ждите готовности перед e2e:
steps:
- deploy: release-2.14.0
- wait_for:
url: https://app/health
status: 200
timeout: 300s
- run: e2e-web