Джерело
QA Co-pilot | ️ Швидкий хак: як знайти flaky-тест однією командоюУчора рахували, що ...
32 Охват/переглядів
2026-10-13 07:00
Повідомлення №395
⚡️ Швидкий хак: як знайти flaky-тест однією командою
Учора рахували, що 10 нестабільних тестів можуть забирати команді ~92 години на місяць. Сьогодні — як їх зловити, поки вони не зловили вас 😅
Ідея проста: запустіть підозрілий тест 20 разів поспіль, і нестабільність вилізе сама.
У Playwright це один прапорець:
npx playwright test checkout --repeat-each=20 --retries=0
- --repeat-each=20 — проганяє кожен тест 20 разів
- --retries=0 — вимикає ретраї, щоб вони не ховали падіння
- -g "назва тесту" — якщо треба один конкретний тест
Як читати результат:
🟢 20 з 20 — тест стабільний
🟡 1–2 падіння — flaky, у беклог на розбір
🔴 3+ падіння — гасіть першим, бо він уже бреше вам щодня
Бонус-перевірка: запустіть те саме з --workers=1 і з кількома воркерами. Якщо падає лише паралельно, то тести ділять між собою дані чи стан, і проблема не в таймінгах
💡 У Cypress ту саму ідею можна реалізувати через Cypress._.times(20, () => it(...)).
👇 Перевірте свій найпідозріліший тест і напишіть у коментарях, скільки вийшло падінь з 20. Найгірший результат розберемо в окремому пості 🔍
Учора рахували, що 10 нестабільних тестів можуть забирати команді ~92 години на місяць. Сьогодні — як їх зловити, поки вони не зловили вас 😅
Ідея проста: запустіть підозрілий тест 20 разів поспіль, і нестабільність вилізе сама.
У Playwright це один прапорець:
npx playwright test checkout --repeat-each=20 --retries=0
- --repeat-each=20 — проганяє кожен тест 20 разів
- --retries=0 — вимикає ретраї, щоб вони не ховали падіння
- -g "назва тесту" — якщо треба один конкретний тест
Як читати результат:
🟢 20 з 20 — тест стабільний
🟡 1–2 падіння — flaky, у беклог на розбір
🔴 3+ падіння — гасіть першим, бо він уже бреше вам щодня
Бонус-перевірка: запустіть те саме з --workers=1 і з кількома воркерами. Якщо падає лише паралельно, то тести ділять між собою дані чи стан, і проблема не в таймінгах
💡 У Cypress ту саму ідею можна реалізувати через Cypress._.times(20, () => it(...)).
👇 Перевірте свій найпідозріліший тест і напишіть у коментарях, скільки вийшло падінь з 20. Найгірший результат розберемо в окремому пості 🔍