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

AbortSignal для тестов Playwright
Знали ли вы, что если тест в Playwright завершился по таймауту, то HTTP-запросы, которые он породил, продолжают выполняться в фоне? Это утечка ресурсов, которая в тео... | Сетка — социальная сеть от hh.ru