コンテンツにスキップ

CLI

Terminal window
test-proxy-recorder <target-url> [options]
オプションデフォルト説明
<target-url>(必須)プロキシするバックエンド URL
--port, -p8000プロキシのリッスンポート
--dir, -d./recordings記録ファイルのディレクトリ
--timeout, -t120000セッション自動リセットのタイムアウト (ms)
--config, -c(自動)設定ファイルのパス
--ws-timingburstWebSocket の再生ペース — burst または original

シークレットの編集(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' } })テストごとに設定することもでき、そのセッションのみプロキシレベルのデフォルトを上書きします。

スタックしたプロキシをリセットする

Section titled “スタックしたプロキシをリセットする”

プロキシは各セッションのタイムアウト後に自動的に transparent へ戻り、globalTeardown はクリーンな実行の最後にリセットします。しかし中断された実行(Ctrl+C)、UI/デバッグセッション、または globalTeardown のない設定では、共有プロキシが record/replay のままスタックすることがあります — その結果、アプリは実際のバックエンドを呼ばずに記録済みレスポンスを提供し続けます。必要に応じてリセットしてください:

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

これは /__control{ "mode": "transparent" } を POST します — curl で手動リセットする代わりの、サポートされた並列安全な手段です。いつでも安全に実行できます: 到達不能なプロキシは no-op として扱われます。ポートは --port フラグ → 環境変数 TEST_PROXY_RECORDER_PORT → 設定ファイル → 8000 の順で解決され、プロキシが起動したポートを対象とします(上書きするには --port / --config)。init はこれを proxy:reset スクリプトとして生成します。

init — セットアップを生成する

Section titled “init — セットアップを生成する”

npx test-proxy-recorder init による推奨の 1 コマンドセットアップはクイックスタートを参照してください。