エグゼキューションサマリープラグイン

プロキシを通過する要求の概要を作成します。

ヒント

構成でレポーター プラグインを使用して、概要をファイルに保存します。

インターセプトされた要求に関する情報を含む、開発プロキシ実行の概要を示すコマンド プロンプトのスクリーンショット。

Dev Proxy によってインターセプトされた要求の概要を示すコマンド プロンプトのスクリーンショット。

構成の例

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "ExecutionSummaryPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "executionSummaryPlugin"
    }
  ],
  "executionSummaryPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/executionsummaryplugin.schema.json",
    "groupBy": "url"
  }
}

構成プロパティ

プロパティ 説明 既定値
groupBy 概要の情報をプロキシでグループ化する方法。 使用可能なオプション: url、messageType url

コマンドライン オプション

名前 説明 既定値
--summary-group-by 概要の情報をプロキシでグループ化する方法。 使用可能なオプション: url、messageType url

出力

ExecutionSummaryPlugin では、記録を停止するとレポートが作成されます。 レポートを JSON として保存するには、ExecutionSummaryPlugin の後に JsonReporter を構成に追加します。 JsonReporter は、現在の作業ディレクトリ内の ExecutionSummaryPlugin_JsonReporter.json という名前のファイルにレポートを書き込みます。 ファイルが既に存在する場合、Dev Proxy は、 ExecutionSummaryPlugin_JsonReporter_20261105104151.jsonなどのタイムスタンプをファイル名に追加します。

JSON レポートは、3 レベル深く入れ子になったオブジェクトです。 最も内側のレベルの値は、Dev Proxy がメッセージをログに記録した回数を示す数値です。 各レベルの意味は、 groupBy 設定によって異なります。

開発プロキシは、レポートで次の読み取り可能なカテゴリ名を使用します。

Category 説明
Requests intercepted 開発プロキシがインターセプトした要求。 groupByがmessageType
Requests passed through 開発プロキシが元のサーバーに渡された要求
Requests mocked プラグインがモック応答を返した要求
Requests with chaos プラグインがエラーまたは待機時間をシミュレートした要求
Failures 失敗した要求
Tips 要求に対してプラグインがログに記録されるヒント
Warnings プラグインが要求に対してログに記録した警告
Unknown 要求のタイムスタンプや、要求をスキップしたプラグインからのメッセージなど、要求に関してログに記録されたその他のメッセージ

URL でグループ化する

groupByがurlされると、レポートの形状は次のようになります。

{
  "<method> <url>": {
    "<category>": {
      "<message>": <count>
    }
  }
}
Level 説明
1 インターセプトされた各要求の HTTP メソッドと URL (たとえば、 GET https://jsonplaceholder.typicode.com/users)。 アプリで呼び出された回数に関係なく、各メソッドと URL の組み合わせが 1 回表示されます
2 Dev Proxy が要求に対してログに記録したメッセージのカテゴリ
3 Dev Proxy がログに記録したメッセージ。このメッセージは、Dev Proxy がメソッドと URL についてログに記録した回数にマップされます

次の例は、 GET https://jsonplaceholder.typicode.com/users を 1 回呼び出したアプリのレポートを示しています。これは開発プロキシがモックし、 GET https://jsonplaceholder.typicode.com/posts を 2 回行い、開発プロキシが通過しました。 読みやすくするために、 Unknown エントリが短縮されます。

{
  "GET https://jsonplaceholder.typicode.com/users": {
    "Unknown": {
      "2026-11-05T10:41:13.1151430+00:00": 1,
      "GET https://jsonplaceholder.typicode.com/users": 1
    },
    "Requests mocked": {
      "200 https://jsonplaceholder.typicode.com/users": 1
    }
  },
  "GET https://jsonplaceholder.typicode.com/posts": {
    "Unknown": {
      "No matching mock response found": 2,
      "GET https://jsonplaceholder.typicode.com/posts": 2
    },
    "Requests passed through": {
      "Passed through": 2
    }
  }
}

メッセージの種類別にグループ化する

groupByがmessageTypeされると、レポートの形状は次のようになります。

{
  "<category>": {
    "<message>": {
      "<method> <url>": <count>
    }
  }
}
Level 説明
1 Dev Proxy がログに記録したメッセージのカテゴリ
2 開発プロキシがログに記録したメッセージ。 Requests interceptedカテゴリとRequests passed throughカテゴリの場合、このレベルではカテゴリ名が繰り返されます。
3 要求の HTTP メソッドと URL。Dev Proxy がそのメソッドと URL のメッセージをログに記録した回数にマップされます。

次の例は、メッセージの種類別にグループ化された同じ要求のレポートを示しています。 Unknown カテゴリは、読みやすくするために短縮されています。

{
  "Requests intercepted": {
    "Requests intercepted": {
      "GET https://jsonplaceholder.typicode.com/users": 1,
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  },
  "Unknown": {
    "No matching mock response found": {
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  },
  "Requests mocked": {
    "200 https://jsonplaceholder.typicode.com/users": {
      "GET https://jsonplaceholder.typicode.com/users": 1
    }
  },
  "Requests passed through": {
    "Requests passed through": {
      "GET https://jsonplaceholder.typicode.com/posts": 2
    }
  }
}

ヒント

開発プロキシのインターセプトを要求する CI パイプラインをチェックインするには、 messageType グループ化を使用し、 ["Requests intercepted"]["Requests intercepted"] オブジェクトのキーを読み取ります。 urlグループ化を使用して、最上位のキーを読み取る。 各キーは HTTP メソッドで始まり、その後にスペースと URL が続きます。 タイムスタンプやその他の診断メッセージが含まれているため、 Unknown カテゴリの内容に依存しないでください。

参照

次のステップ