建立通過 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 |
Proxy 應該如何將摘要中的資訊分組。 可用選項: url、 messageType |
url |
命令列選項
| 名稱 | 說明 | 預設 |
|---|---|---|
--summary-group-by |
Proxy 應該如何將摘要中的資訊分組。 可用選項: url、 messageType |
url |
Output
當你停止錄影時,ExecutionSummaryPlugin 會產生報告。 要將報告儲存為 JSON,請在你的設定中 ExecutionSummaryPlugin 後加入 JsonReporter 。 JsonReporter 會將報告寫入目前工作目錄中命名 ExecutionSummaryPlugin_JsonReporter.json 的檔案。 如果該檔案已經存在,Dev Proxy 會在檔名後加上時間戳,例如 ExecutionSummaryPlugin_JsonReporter_20261105104151.json。
JSON 報告是一個巢狀的物件,深度為三層。 最底層的數值是顯示 Dev Proxy 記錄訊息的次數。 每個關卡的意義取決於設定。groupBy
Dev Proxy 在報告中使用以下可讀的類別名稱:
| 類別 | 說明 |
|---|---|
Requests intercepted |
開發代理攔截了請求。 只有在 groupBy 是 時才會被納入 messageType |
Requests passed through |
Dev Proxy 傳遞給原始伺服器的請求 |
Requests mocked |
外掛回傳模擬回應的請求 |
Requests with chaos |
外掛模擬錯誤或延遲的請求 |
Failures |
失敗的請求 |
Tips |
插件為請求記錄的提示 |
Warnings |
插件會為請求記錄警告 |
Unknown |
其他訊息記錄了請求,例如請求時間戳記及跳過請求的外掛訊息 |
依網址分組
當 groupBy 時 url,報告呈現以下形狀:
{
"<method> <url>": {
"<category>": {
"<message>": <count>
}
}
}
| Level | 說明 |
|---|---|
| 1 | 每個截獲請求的 HTTP 方法與網址,例如 GET https://jsonplaceholder.typicode.com/users。 每個方法和網址組合都會出現一次,不管你的應用程式呼叫它多少次 |
| 2 | 開發代理為請求記錄的訊息類別 |
| 3 | Dev Proxy 記錄的訊息,會對應到該方法和網址的記錄次數 |
以下範例展示了一個應用程式的報告,該報告呼叫 GET https://jsonplaceholder.typicode.com/users 了一次,Dev Proxy 嘲笑了一次,兩次 GET https://jsonplaceholder.typicode.com/posts 呼叫了 Dev Proxy 通過。
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 | Dev Proxy 記錄的訊息。 對於 和 Requests interceptedRequests 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 管線中請求 Dev Proxy 攔截,請使用 messageType 群組並讀取物件的 ["Requests intercepted"]["Requests intercepted"] 金鑰。 分組時 url ,請閱讀最頂層的調性。 每個金鑰以 HTTP 方法開頭,後接空格和網址。 不要只依賴分類內容 Unknown ,因為它包含時間戳記和其他診斷訊息。