AbortSignal для тестов Playwright
Знали ли вы, что если тест в Playwright завершился по таймауту, то HTTP-запросы, которые он породил, продолжают выполняться в фоне? Это утечка ресурсов, которая в теории может дестабилизировать вашу инфраструктуру.
Есть только 1 выход из этого положения - abort signal / abort controller API.
Чтобы не городить велосипед мы сделали новый npm пакет в рамках playwright labs - fixture signal. Ваши тесты автоматически получают фикстуры: • abortController — экземпляр AbortController • signal — связанный с ним AbortSignal
Пример import { test, expect } from '@playwright-labs/fixture-abort';
test('fetch with close', async ({ signal }) => { const res = await fetch('https://api.example.com/data', { signal }); const data = await res.json(); expect(data).toBeDefined(); });
Когда тест завершается по таймауту, срабатывает сигнал, и все операции, подписанные на него, немедленно отменяются. Никаких утечек соединений. Никаких «зомби»-запросов.
установить можно командой npm i @playwright-labs/fixture-abort. Пользуйтесь
#javascript #js #typescript #ts #playwright #pw #pw_labs #abort #automation #test_automation #sdet #api @haradkou_sdet