CLI
test-proxy-recorder <target-url> [options]| Опция | По умолчанию | Описание |
|---|---|---|
<target-url> | (обязательно) | URL бэкенда для проксирования |
--port, -p | 8000 | Порт прослушивания прокси |
--dir, -d | ./recordings | Каталог для файлов записей |
--timeout, -t | 120000 | Таймаут автосброса сессии (мс) |
--config, -c | (авто) | Путь к файлу конфигурации |
--ws-timing | burst | Темп воспроизведения WebSocket — burst или original |
Редактирование секретов включено по умолчанию — Authorization/Cookie/Set-Cookie автоматически вырезаются из записей. Отключите через --no-redact или redaction: false в конфигурации. О флагах --redact-headers и --redact-body, которые добавляют к тому, что редактируется, см. редактирование секретов.
# Examplestest-proxy-recorder http://localhost:8000test-proxy-recorder http://localhost:8000 --port 8100 --dir ./mocksТемп воспроизведения WebSocket
Заголовок раздела «Темп воспроизведения WebSocket»По умолчанию записанные серверные сообщения 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.
init — сгенерировать настройку
Заголовок раздела «init — сгенерировать настройку»Рекомендуемую настройку одной командой через npx test-proxy-recorder init см. в быстром старте.