概要
目標: Dev Proxy アクティビティをレポート ファイルに記録してエクスポートする
時間: 10 分
Plugins:ExecutionSummaryPlugin、 MarkdownReporter
前提条件:開発プロキシを設定する
プロキシ アクティビティを記録およびエクスポートするには、構成ファイルで ExecutionSummaryPlugin とレポーター プラグインを使用します。
次の例は、ExecutionSummaryPlugin および MarkdownReporter プラグインを使用してプロキシ アクティビティを記録およびエクスポートするように Dev Proxy を構成する方法を示しています。
ファイル: devproxyrc.json
{
"plugins": [
{
"name": "ExecutionSummaryPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
},
{
"name": "MarkdownReporter",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
],
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
]
}
Tip
構成を自分で作成する代わりに、既製の api-inventory プリセットをダウンロードできます。このプリセットには、アプリが呼び出す URL とそのアクティビティの概要が記録されます。
devproxy config get api-inventory
devproxy --config-file "~dataFolder/configs/api-inventory/.devproxy/devproxyrc.json" --urls-to-watch "https://api.contoso.com/*"
詳細については、「プリセット構成を使用する」を参照してください。
注
アクティビティをエクスポートするには、構成ファイルでレポーター プラグインを有効にし、プラグインの一覧の ExecutionSummaryPlugin の後に配置する必要があります。 プラグインリストの最後にレポータープラグインを配置することをお勧めします。
アクティビティを記録するには、Dev Proxy をレコード モードにする必要があります。
記録を開始するには、次の 2 つの方法があります。
-
すぐに記録する。
--recordオプションを使用してプロキシを起動します。たとえばdevproxy --recordです。 - アドホック記録。 プロキシの実行中に、R を押します。
録画を有効にすると、◉ Recording... がプロキシの出力に表示されます。
記録されたアクティビティからレポートを作成するには、記録を停止してください。
記録を停止するには、2 つの方法があります:
- プロキシを停止する。 Ctrl + C キーを押します。
- アドホックを停止する。 S キーを押します。
デフォルトでは、アクティビティは URL ごとにグループ化されます。 メッセージの種類別にアクティビティをグループ化するには、 --summary-group-by オプションを使用します。
devproxy --record --summary-group-by messageType
レポートが作成される場所
記録を停止すると、有効になっている各レポーターは、レポート プラグインによって生成されたレポートごとに 1 つのファイルを書き込みます。 開発プロキシは、現在の作業ディレクトリ (開発プロキシを開始したフォルダー) にファイルを書き込みます。 たとえば CI パイプラインなどで Dev Proxy をバックグラウンドで起動する場合は、レポートを保存するフォルダーから起動してください。
レポート ファイルでは、次の名前付けパターンを使用します。
<ReportingPlugin>_<Reporter>.<ext>
たとえば、この記事の設定では、ExecutionSummaryPlugin_MarkdownReporter.md という名前のファイルが生成されます。
その名前のファイルが既に存在する場合、Dev Proxy はそれを上書きしません。 代わりに、ExecutionSummaryPlugin_MarkdownReporter_20261105103000.md形式のタイムスタンプがファイル名に追加されます。たとえばyyyyMMddHHmmssです。 Dev Proxy は、書き込む各レポート ファイルの名前をログに記録します。次に例を示します。
Writing report ExecutionSummaryPlugin to ExecutionSummaryPlugin_MarkdownReporter.md...
次の表に、各レポーターが使用する拡張機能を示します。
| レポーター | Extension |
|---|---|
| JsonReporter |
.json (一部のレポートでは、たとえば UrlDiscoveryPlugin では .jsonc のように、別の拡張子が使用されています) |
| MarkdownReporter | .md |
| PlainTextReporter | .txt |
注
すべての録画はローカルで行われます。 Microsoft にはデータは送信されません。
スクリプトと CI のレコード
スクリプトと CI/CD パイプラインでは、キーを押して記録を開始および停止することはできません。 代わりに、Dev Proxy API を使用して、バックグラウンドで Dev Proxy を実行し、記録を制御します。 すべての API 要求にはベアラー トークンが必要です。 トークンを事前に設定するには、開発プロキシを開始する前に、DEV_PROXY_API_TOKEN 環境変数を少なくとも 32 文字の値に設定します。
最小シーケンスは次のとおりです。
-
DEV_PROXY_API_TOKENを 32 文字以上のランダムな値に設定します。 - バックグラウンドで開発プロキシを起動する:
devproxy --detach --as-system-proxy false -c devproxyrc.json。 -
GET /proxyが成功するまで待ちます。 - 記録の開始:
POST /proxyと{"recording": true}。 - Dev Proxy を指す
HTTP_PROXYとHTTPS_PROXY環境変数を使用してワークロードを実行します。 - 記録の停止:
POST /proxyと{"recording": false}。 レポート生成が終わると要求が戻ってくるため、処理が完了した時点でレポートの準備が整います。 - Dev Proxy をシャットダウンする:
POST /proxy/stopProxy。
Dev Proxyは、レポートを起動元となったフォルダーに書き込みます。
#!/usr/bin/env bash
set -euo pipefail
# 1. use a known API token (at least 32 characters)
export DEV_PROXY_API_TOKEN=$(openssl rand -hex 32)
api=http://127.0.0.1:8897
auth="Authorization: Bearer $DEV_PROXY_API_TOKEN"
# 2. start Dev Proxy in the background
devproxy --detach --as-system-proxy false -c devproxyrc.json
# 3. wait for the API
until curl -sf -H "$auth" "$api/proxy" > /dev/null; do sleep 1; done
# 4. start recording
curl -sf -X POST "$api/proxy" -H "$auth" -H "Content-Type: application/json" -d '{"recording": true}'
# 5. run the workload through Dev Proxy
HTTP_PROXY=http://127.0.0.1:8000 HTTPS_PROXY=http://127.0.0.1:8000 npm test
# 6. stop recording and wait for the reports
curl -sf -X POST "$api/proxy" -H "$auth" -H "Content-Type: application/json" -d '{"recording": false}'
# 7. shut down Dev Proxy
curl -sf -X POST "$api/proxy/stopProxy" -H "$auth"
この例では、既定のプロキシ ポート 8000 と API ポート 8897を使用します。 API 呼び出しが Dev Proxy を経由しないように、ワークロードにのみプロキシ環境変数を設定します。 HTTPS トラフィックをインターセプトするには、ワークロードが Dev Proxy ルート証明書を信頼する必要があります。 証明書の信頼など、パイプラインでの Dev Proxy の実行の詳細については、「CI/CD シナリオでの Dev Proxy の使用」を参照してください。
こちらも参照ください
- ExecutionSummaryPlugin - 完全なリファレンス
- MarkdownReporter - レポート形式
- Proxy API - プログラムによる Dev Proxy の制御
- CI/CD シナリオで開発プロキシを使用する - パイプラインで開発プロキシを実行する
- 用語集 - 開発プロキシの用語
- CI/CD シナリオで Dev Proxy を使用する - パイプラインで API 呼び出しを記録する
- プリセット設定を使用する - あらかじめ用意された設定
Dev Proxy