Тест падает раз в двадцать прогонов, и повтор ничего не проясняет: он идёт сразу же, в том же состоянии браузера, а зависшее действие всё равно досиживает свой таймаут до конца.
Playwright — фреймворк сквозного тестирования, который гоняет Chromium, Firefox и WebKit через один API. Версия 1.62.0 вышла 24 июля.
Что внутри:
🔘 стратегия повторов настраивается через testConfig.retryStrategy: immediate перезапускает тест сразу, isolated откладывает все повторы на конец прогона и выполняет их последовательно в одном воркере;
🔘 большинство действий и web-first проверок принимают AbortSignal, поэтому зависшее ожидание можно отменить из кода; обычный таймаут при этом продолжает работать, а timeout: 0 его выключает;
🔘 скриншоты и снимки для визуальных тестов сохраняются в WebP, при quality: 100 сжатие идёт без потерь, меньшие значения дают сжатие с потерями;
🔘 компонентные тесты переехали на модель stories и galleries: fixtures.mount() монтирует story и возвращает Locator с методами update() и unmount();
🔘 у репортеров появился хук reporter.preprocess(), он вызывается после разбора конфигурации и до onBegin(), в нём тест можно пометить как пропущенный, исключённый, починенный или падающий;
🔘 в storage state сохраняются виртуальные ключи WebAuthn, их можно подставить в следующие контексты браузера и не проходить вход по passkey заново;
🔘 добавлены режимы автопрокрутки scroll: "auto" и scroll: "none", метод apiResponse.timing() и locator.waitForFunction(), а page.evaluate() и addInitScript() теперь принимают функции аргументами, поэтому реже приходится собирать JavaScript строками.
Пригодится тем, кто держит большой набор кроссбраузерных тестов в CI и разбирается с плавающими падениями.
Debian 11 больше не поддерживается. В релизе проверены Chromium 151.0.7922.34, Firefox 153.0 и WebKit 26.5.
Язык: TypeScript. Лицензия: Apache 2.0.
@prog_tools
Post #2859
1.41K

- 👍 1