Перейти к содержимому

CLI

Окно терминала
test-proxy-recorder <target-url> [options]
ОпцияПо умолчаниюОписание
<target-url>(обязательно)URL бэкенда для проксирования
--port, -p8000Порт прослушивания прокси
--dir, -d./recordingsКаталог для файлов записей
--timeout, -t120000Таймаут автосброса сессии (мс)
--config, -c(авто)Путь к файлу конфигурации
--ws-timingburstТемп воспроизведения WebSocket — burst или original

Редактирование секретов включено по умолчанию — Authorization/Cookie/Set-Cookie автоматически вырезаются из записей. Отключите через --no-redact или redaction: false в конфигурации. О флагах --redact-headers и --redact-body, которые добавляют к тому, что редактируется, см. редактирование секретов.

Окно терминала
# Examples
test-proxy-recorder http://localhost:8000
test-proxy-recorder http://localhost:8000 --port 8100 --dir ./mocks

По умолчанию записанные серверные сообщения WebSocket воспроизводятся пачкой (burst) при подключении — это быстрее всего и полностью детерминированно, идеально для CI. Передайте --ws-timing original (или websocket: { timing: 'original' } в конфигурации), чтобы воспроизводить их по записанным меткам времени, так что сообщения приходят с их реальными интервалами; тогда тест занимает примерно столько же реального времени, сколько и запись.

Это также можно задать для каждого теста через playwrightProxy.before(page, testInfo, mode, { websocket: { timing: 'original' } }) — это переопределяет значение по умолчанию на уровне прокси только для этой сессии.

Прокси автоматически возвращается в transparent после таймаута каждой сессии, а globalTeardown сбрасывает его в конце чистого прогона. Но прерванный прогон (Ctrl+C), сессия UI/отладки или конфигурация без globalTeardown могут оставить общий прокси зависшим в record/replay — и тогда ваше приложение продолжит отдавать записанные ответы вместо обращения к реальному бэкенду. Сбросьте его по требованию:

Окно терминала
test-proxy-recorder reset # or: npm run proxy:reset

Это отправляет POST { "mode": "transparent" } на /__control — поддерживаемая, безопасная для параллелизма замена ручного сброса через curl. Запускать безопасно в любой момент: недоступный прокси трактуется как no-op. Порт определяется так: флаг --port → переменная окружения TEST_PROXY_RECORDER_PORT → файл конфигурации → 8000, поэтому он нацелен на порт, на котором был запущен прокси (переопределите через --port / --config). init создаёт это как скрипт proxy:reset.

Рекомендуемую настройку одной командой через npx test-proxy-recorder init см. в быстром старте.