跳转到内容

CLI

Terminal window
test-proxy-recorder <target-url> [options]
选项默认值说明
<target-url>(必填)要代理的后端 URL
--port, -p8000代理监听端口
--dir, -d./recordings录制文件目录
--timeout, -t120000会话自动重置超时(毫秒)
--config, -c(自动)配置文件路径
--ws-timingburstWebSocket 回放节奏 —— burstoriginal

机密涂抹(redaction)默认开启 —— Authorization/Cookie/Set-Cookie 会被自动从录制中去除。用 --no-redact,或在配置中设 redaction: false 关闭。--redact-headers--redact-body 等用于追加涂抹内容的标志,请参见机密涂抹

Terminal window
# 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' } }) 按测试设置,它仅对该会话覆盖代理级别的默认值。

代理会在每个会话超时后自动恢复到 transparentglobalTeardown 也会在一次干净运行结束时重置它。但被中断的运行(Ctrl+C)、UI/调试会话,或没有 globalTeardown 的配置,都可能让共享代理卡在 record/replay —— 于是你的应用会继续提供录制的响应,而不是访问真实后端。可按需重置:

Terminal window
test-proxy-recorder reset # or: npm run proxy:reset

它会向 /__control 发送 { "mode": "transparent" } POST —— 这是用 curl 手动重置的受支持、并行安全的替代方案。随时运行都安全:无法访问的代理会被当作无操作。端口的解析顺序为 --port 标志 → 环境变量 TEST_PROXY_RECORDER_PORT → 配置文件 → 8000,因此它会指向代理启动时所用的端口(用 --port / --config 覆盖)。init 会把它生成为 proxy:reset 脚本。

使用 npx test-proxy-recorder init 的推荐一键配置,请参见快速开始