Флакающие тесты убивают доверие к автоматизации.
Исследование ACM (Parry et al., 2022) показало: 58% разработчиков сталкиваются с флаками минимум раз в месяц, и 79% считают это серьёзной проблемой (источник). У нас в проекте падало 15-20% тестов в CI без видимой причины. Вот три приёма, которые снизили это до 2-3%.
1. Явные waits вместо page.waitForTimeout()
typescript // ❌ Так делать не надо await page.waitForTimeout(2000); await page.click('.submit-btn');
// ✅ Так надёжнее await page.waitForSelector('.submit-btn', { state: 'visible' }); await page.click('.submit-btn');
2. Retry на уровне теста, не suite // playwright.config.ts export default defineConfig({ retries: process.env.CI ? 2 : 0, // только в CI reporter: [['html'], ['list']], });
3. Изоляция состояния через storageState test.beforeEach(async ({ page }) => { // каждый тест получает чистый state await page.context().clearCookies(); await page.context().clearPermissions(); });
Главный инсайт: по моему опыту, большинство флаков — это проблема гонки состояний, нечистой изоляции или инфраструктуры, а не самого Playwright. Починить надо архитектуру, не тест.
Какой ваш способ борьбы с флаками? 👇
#playwright #typescript #qa_automation #sdet #testing #ts #js #javascript #automation @haradkou_sdet
· 17 ч
Увеличение времени ожиданий выручают :))
ответить
коммент удалён