Ответ вслух Middle Playwright обновлено

Тест падает только в CI

Вопрос

Тест на Playwright стабильно проходит локально, но падает в CI. Как будете разбираться?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Первым делом открываю трейс из артефактов: на каком шаге упал, что было на странице, какие запросы ушли. Дальше сравниваю окружения: в CI headless, другой размер окна, меньше CPU, другие данные на стенде, больше воркеров.

Что должно прозвучать в ответе

  • Смотреть трейс, скриншот и видео из артефактов CI

  • Сравнить окружения: headless, размер окна, ресурсы, версии браузеров, данные

  • Проверить зависимость от параллельности и порядка: прогнать с теми же workers

  • Проверить ожидания: снимки состояния вместо web-first assertions

  • Воспроизвести локально в контейнере того же образа

Что могут спросить следом

  • Что делать, если в CI медленнее и не хватает таймаута?
  • Как запустить тест локально как в CI?

Разбор

Образцовый ответ: «Первым делом открываю трейс из артефактов: на каком шаге упал, что было на странице, какие запросы ушли. Дальше сравниваю окружения: в CI headless, другой размер окна, меньше CPU, другие данные на стенде, больше воркеров. Частая причина: проверка через isVisible() или count() без ожидания, которая проходит на быстрой машине. Ещё одна: общие данные при параллельном запуске. Воспроизвожу локально тем же docker-образом Playwright и тем же числом воркеров, с --repeat-each»).

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме