本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
MCP 工具規格
分散式負載測試解決方案公開了一組 MCP 工具,可讓 AI 代理器與測試案例和結果互動。這些工具提供高階的抽象功能,符合 AI 代理器處理資訊的方式,讓他們專注於分析和洞見,而不是詳細的 API 合約。
MCP 伺服器支援兩種存取模式,由 MCPServerAccessMode AWS CloudFormation 參數控制:
-
ReadOnly (預設) — 僅註冊讀取工具。客服人員可透過 看到 7 個工具
tools/list。沒有可用的變動操作。 -
ReadWrite — 讀取和寫入工具都會註冊。客服人員可透過 看到所有工具 (讀取 + 寫入),
tools/list並可建立測試、觸發執行、管理排程和上傳指令碼。
存取模式是在部署時間設定。若要在初始部署後變更存取模式,請使用新的MCPServerAccessMode參數值執行 CloudFormation 堆疊更新。變更會在堆疊更新完成時生效,不需要其他手動步驟。
在 ReadOnly 模式中,完全不會註冊寫入工具,客服人員永遠不會在 中看到這些工具tools/list。MCP Server 的 AWS Lambda 函數上的 AWS Identity and Access Management (IAM) 政策會隨之調整範圍。 AWS Lambda ReadOnly 僅允許對 API 提出 GET 請求。ReadWrite 允許 GET、POST、PUT 和 DELETE。
讀取工具
list_scenarios
說明
此list_scenarios工具會擷取具有基本中繼資料之所有可用測試案例的清單。
Endpoint
GET /scenarios
Parameters
無
回應
| 名稱 | 描述 |
|---|---|
|
|
測試案例的唯一識別符 |
|
|
測試案例的名稱 |
|
|
測試案例的目前狀態 |
|
|
測試建立或上次執行的時間 |
|
|
測試案例的描述 |
get_scenario_details
說明
此get_scenario_details工具會擷取單一測試案例的測試組態和最新的測試執行。
回應會報告案例的流量形狀模式。nativeRunMode 物件表示原生模式,而其缺少則表示標準模式。對於原生案例,concurrency、 rampUp和 holdFor 欄位不會反映執行產生的負載。負載來自指令碼。如需詳細資訊,請參閱流量形狀模式。
Endpoint
GET /scenarios/<test_id>?history=false&results=false
請求參數
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
每個區域的任務組態 |
|
|
測試定義和參數 |
|
|
目前的測試狀態 |
|
|
測試開始時間戳記 |
|
|
測試結束時間戳記 (如果已完成) |
list_test_runs
說明
此list_test_runs工具會擷取特定測試案例的測試執行清單,將最新到最舊排序。傳回最多 30 個結果。只能提供其中一個 limit或 start_timestamp ,不能同時提供兩者。
Endpoint
GET /scenarios/<testid>/testruns/?limit=<limit>
或
GET /scenarios/<testid>/testruns/?start_timestamp=<start_timestamp>
請求參數
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
-
limit -
-
要傳回的測試執行數目上限。不能與
start_timestamp搭配使用。類型:整數
預設:20
上限:30
必要:否
-
-
start_timestamp -
-
傳回返回此時間戳記的所有測試執行。不能與
limit搭配使用。類型:字串 (ISO 8601 日期時間格式,例如
2024-01-15T14:30:00.000Z)必要:否
-
回應
| 名稱 | 描述 |
|---|---|
|
|
具有每次執行效能指標和百分位數的測試執行摘要陣列 |
get_test_run
說明
此get_test_run工具會擷取具有區域和端點明細的單一測試執行的詳細結果。
Endpoint
GET /scenarios/<testid>/testruns/<testrunid>
請求參數
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
-
test_run_id -
-
特定測試執行的唯一識別符
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
完整的測試執行資料,包括區域結果明細、端點特定指標、效能百分位數 (p50、p90、p95、p99)、成功和失敗計數、回應時間和延遲,以及用於執行的測試組態 |
get_latest_test_run
說明
此get_latest_test_run工具會擷取特定測試案例的最新測試執行。
Endpoint
GET /scenarios/<testid>/testruns/?limit=1
注意
結果會使用全域次要索引 (GSI) 依時間排序,以便傳回最近的測試執行。
請求參數
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
與 具有相同格式的最新測試執行資料 |
get_baseline_test_run
說明
此get_baseline_test_run工具會擷取特定測試案例的基準測試執行。基準用於效能比較目的。
Endpoint
GET /scenarios/<test_id>/baseline
請求參數
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
用於比較的基準測試執行資料,包括來自指定基準執行的所有指標和組態 |
get_test_run_artifacts
說明
此get_test_run_artifacts工具會擷取 Amazon S3 儲存貯體資訊,以存取測試成品,包括日誌、錯誤檔案和結果。
Endpoint
GET /scenarios/<testid>/testruns/<testrunid>
請求參數
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
-
test_run_id -
-
特定測試執行的唯一識別符
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
存放成品的 S3 儲存貯體名稱 |
|
|
目前成品儲存的路徑字首 (4.0 版以上) |
|
|
舊版成品儲存的路徑字首 (4.0 版前) |
寫入工具
只有在 MCPServerAccessMode 設定為 時,才能使用寫入工具ReadWrite。它們可讓客服人員建立、修改和執行測試案例。
create_test
說明
create_test 工具會在不執行的情況下建立新的負載測試案例。測試已儲存,稍後可以使用 執行start_run。對於以指令碼為基礎的測試 (jmeter、k6、camryt),upload_test_script請先呼叫 並傳遞傳回的 test_id。
Parameters
-
test_id -
-
測試案例的唯一識別符。省略簡單的 HTTP 測試 (系統會產生測試)。以指令碼為基礎的測試需要 — 使用
test_id傳回的upload_test_script。類型:字串
必要:否 (以指令碼為基礎的測試需要)
-
-
test_name -
-
測試案例的人類可讀名稱
類型:字串
必要:是
-
-
test_description -
-
此測試驗證項目的描述
類型:字串
必要:是
-
-
test_type -
-
測試類型。
simple適用於內嵌設定的 HTTP 端點測試。k6、jmeter或locust適用於參考上傳指令碼檔案的指令碼型測試。類型:字串
必要:是
-
-
test_task_configs -
-
區域任務組態。每個項目指定一個區域、AWS Fargate 任務的數量,以及每個任務的並行虛擬使用者。區域的並行使用者總數 =
task_count×concurrency。類型:物件陣列 (每個都有
region、task_count、concurrency)必要:是
-
-
test_scenario -
-
測試執行案例 (定義負載描述檔和目標端點)。包含
execution(延遲、保留、案例名稱) 和scenarios(具有簡單測試requests陣列或指令碼型測試script字串的已命名案例定義)。類型:物件
必要:是
-
-
show_live -
-
是否要在測試執行期間啟用即時監控。
類型:布林值
預設:
false必要:否
-
-
tags -
-
用於組織測試案例的標籤。最多 5 個標籤。
類型:字串陣列
必要:否
-
-
native_run_mode -
-
選取流量形狀模式的物件。將其省略為標準模式,其中解決方案控制負載。將其納入原生模式,其中您上傳的指令碼會控制載入。如需詳細資訊,請參閱流量形狀模式。
類型:物件
必要:否
-
原生模式與標準模式不同,如下所示:
-
物件需要一個欄位
max_test_duration_seconds,最多 24 小時。 -
只有以指令碼為基礎的測試 (
jmeter、k6或locust) 接受原生模式。 -
簡單 HTTP 端點測試一律以標準模式執行。
-
test_task_configs仍然是必要項目,而且每個項目仍然需要concurrency。 -
concurrency使用 設定的請求會native_run_mode傳回成功。 -
測試產生的負載是指令碼宣告的負載。
-
每個區域的總負載是指令碼的負載乘以
task_count。
回應
| 名稱 | 描述 |
|---|---|
|
|
已建立測試的唯一 ID |
|
|
測試的名稱 |
|
|
測試的狀態 (例如, |
update_test
說明
update_test 工具會更新現有測試案例的組態。這是完整的取代 — 必須提供整個測試組態,而不只是變更的欄位。測試目前不得執行中。
Parameters
與 相同create_test,但 test_id 為必要項目,且必須參考現有的測試。
回應
| 名稱 | 描述 |
|---|---|
|
|
已更新測試的唯一 ID |
|
|
測試的名稱 |
|
|
測試的狀態 |
delete_test
說明
此delete_test工具會永久刪除測試案例和所有相關資料,包括測試執行歷史記錄、排程和 Amazon CloudWatch 儀表板。這個動作無法復原。測試目前不得正在執行。
Parameters
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
確認刪除 |
start_run
說明
start_run 工具會開始執行測試案例。MCP 伺服器會擷取測試的預存組態並觸發執行。立即傳回狀態為 queued。使用 get_latest_test_run 輪詢完成。
Parameters
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
測試的唯一 ID |
|
|
測試的狀態 (例如, |
stop_run
說明
stop_run 工具會停止目前正在執行的測試。傳送取消訊號至所有執行中的 Fargate 任務。測試狀態會轉換為 cancelled。部分結果可透過 取得get_latest_test_run。
Parameters
-
test_id -
-
測試案例的唯一識別符
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
確認取消 |
create_simple_schedule
說明
此create_simple_schedule工具會建立一次性排程測試,在指定的日期和時間自動執行。需要所有標準測試組態欄位加上排程欄位。
Parameters
所有create_test參數 (使用test_id選用的相同規則),加上:
-
schedule_date -
-
排程執行的日期。必須在未來。
類型:字串 (格式:
YYYY-MM-DD)必要:是
-
-
schedule_time -
-
排程執行的時間。
類型:字串 (格式:
HH:MM,24 小時)必要:是
-
-
schedule_timezone -
-
用於排程解譯的 IANA 時區 (例如,
America/New_York、UTC)。類型:字串
預設:
UTC必要:否
-
回應
| 名稱 | 描述 |
|---|---|
|
|
測試的唯一 ID |
|
|
測試的狀態 (例如, |
|
|
下一個排定的執行時間 |
create_cron_schedule
說明
此create_cron_schedule工具會建立週期性排程測試,根據 Cron 表達式自動執行。需要所有標準測試組態欄位加上 Cron 排程欄位。
Parameters
所有create_test參數 (使用test_id選用的相同規則),加上:
-
cron_value -
-
週期性排程的 Cron 表達式。標準 5 欄位格式 (例如,
0 9 * * *每日上午 9:00)。類型:字串
必要:是
-
-
recurrence -
-
人類可讀取的重複標籤 (例如
daily、)weekly。類型:字串
必要:是
-
-
cron_expiry_date -
-
週期性排程停止執行的日期。
類型:字串 (格式:
YYYY-MM-DD)必要:否
-
-
schedule_timezone -
-
用於排程解譯的 IANA 時區。
類型:字串
預設:
UTC必要:否
-
回應
| 名稱 | 描述 |
|---|---|
|
|
測試的唯一 ID |
|
|
測試的狀態 (例如, |
|
|
下一個排定的執行時間 |
update_simple_schedule
說明
此update_simple_schedule工具會更新現有一次性排程測試的排程組態。完整取代測試組態,包括排程欄位。測試必須處於 scheduled 狀態。
Parameters
與 相同create_simple_schedule,但 test_id 為必要項目,且必須參考現有的排程測試。
回應
與 create_simple_schedule 相同。
update_cron_schedule
說明
update_cron_schedule 工具會更新現有定期排程測試的排程組態。完整取代測試組態,包括 Cron 排程欄位。測試必須處於 scheduled 狀態。
Parameters
與 相同create_cron_schedule,但 test_id 為必要項目,且必須參考現有的排程測試。
回應
與 create_cron_schedule 相同。
upload_test_script
說明
此upload_test_script工具會上傳指令碼型測試所需的指令碼檔案 (JMeter .jmx、k6.py、.jsLocust 或 .zip)。必須在指令碼型測試之前呼叫 create_test或 update_test 。傳回script_filename用於後續工具呼叫的 test_id和 。
Parameters
-
test_id -
-
測試案例的唯一識別符。省略新測試 (系統產生一個測試)。提供現有測試以上傳到正確的位置。
類型:字串
必要:否
-
-
test_type -
-
測試類型:
jmeter、k6或locust。類型:字串
必要:是
-
-
file_extension -
-
副檔名:
jmx、py、js或zip。類型:字串
必要:是
-
-
file_content -
-
Base64-encoded的檔案內容。
類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
測試 ID (產生或提供) |
|
|
S3 中的檔案名稱 (格式: |
工作流程指南
工作流程指南是多步驟配方,可協助客服人員將多個工具鏈結在一起以進行常見操作。此get_workflow_guides工具會傳回每個工作流程的結構化step-by-step指引。
get_workflow_guides
說明
此get_workflow_guides工具會傳回常見多工具 DLT 操作的step-by-step工作流程配方。傳回要呼叫哪些工具的結構化指導、順序,以及如何解譯步驟之間的結果。
Parameters
-
workflow -
-
要擷取指引的工作流程。其中之一:
run_and_monitor、baseline_comparison、schedule_test、create_and_run、update_and_run。類型:字串
必要:是
-
回應
| 名稱 | 描述 |
|---|---|
|
|
工作流程識別符 |
|
|
工作流程用途的簡短描述 |
|
|
步驟物件陣列,每個包含 |
可用的工作流程
run_and_monitor
啟動現有的測試執行並輪詢直到完成。
-
使用
list_scenarios或 尋找測試get_scenario_details -
使用 啟動測試執行
start_run -
使用 輪詢以完成
get_latest_test_run(建議的間隔:30 秒;在 Amazon Elastic Container Service (Amazon ECS) 任務啟動時,處理初始 404 1-3 分鐘) -
達到終端機狀態時報告結果 (
complete、failed或cancelled)
baseline_comparison
執行測試,並將結果與儲存的基準進行比較。
-
使用
list_scenarios或 尋找測試get_scenario_details -
使用 啟動測試執行
start_run -
使用 輪詢以完成
get_latest_test_run(建議間隔:30 秒) -
使用 擷取基準
get_baseline_test_run(如果未設定基準,則略過比較) -
比較指標 (平均回應時間、延遲、輸送量、百分位數、錯誤率)
schedule_test
建立具有重複或一次性排程的測試。
-
判斷排程類型 (一次性 →
create_simple_schedule、重複 →create_cron_schedule) -
如果以指令碼為基礎的 使用 上傳測試指令碼
upload_test_script -
建立具有完整組態加上排程欄位的排程測試
-
驗證排程是否使用 建立
get_scenario_details(檢查status: scheduled和nextRun)
限制條件:週期性執行之間的間隔至少為 1 小時,間隔必須超過測試持續時間,cron 必須只指定一分鐘的值。
create_and_run
從頭開始建立新的測試並立即執行。
-
如果以指令碼為基礎的 使用 上傳測試指令碼
upload_test_script -
使用 建立測試
create_test -
使用
start_run搭配傳回的 啟動測試執行test_id -
使用 輪詢以完成
get_latest_test_run(建議間隔:30 秒) -
報告結果
update_and_run
修改現有測試的組態,並立即重新執行。
-
使用 擷取目前的組態
get_scenario_details -
如果使用 變更指令碼,請上傳新的指令碼
upload_test_script -
使用 更新測試組態
update_test(完全取代 - 包含所有欄位) -
使用 啟動測試執行
start_run -
使用 輪詢以完成
get_latest_test_run(建議間隔:30 秒) -
報告結果
注意
所有 MCP 工具都會利用現有的 API 端點。不需要修改基礎 APIs 即可支援 MCP 功能。