執行測試案例 - AWS 上的分散式負載測試

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

執行測試案例

建立測試案例之後,您可以立即執行它,或排定它在未來的特定時間執行。當您導覽至執行中的測試時,主控台會顯示案例詳細資訊索引標籤,其中包含即時任務狀態和指標。

執行測試案例,顯示任務狀態和即時指標

案例詳細資訊檢視

案例詳細資訊索引標籤會顯示測試的重要資訊。每個區域的任務 staus 資料表即時資訊。

任務狀態資料表

任務狀態資料表顯示每個區域的即時資訊:

  • 區域 - 執行任務的 AWS 區域

  • 任務計數 - 針對區域設定的任務總數

  • 並行 - 每個任務的虛擬使用者數量

  • 執行中 - 目前正在執行測試的任務數量

  • 待處理 - 等待啟動的任務數量

  • 佈建 - 正在佈建的任務數量

測試執行工作流程

當測試開始時,會發生下列工作流程:

  1. 任務佈建 - 解決方案會在指定的 AWS 區域中佈建容器 (任務)。任務會出現在「佈建」欄中。

  2. 任務啟動 - 解決方案會繼續佈建任務,直到達到每個區域的目標任務計數為止。任務會從 "Provisioning" 移至 "Pending" 到 "Running"。

  3. 流量產生 - 在解決方案佈建區域中的所有任務之後,它們會開始將流量傳送到您的目標端點。

  4. 測試執行 - 測試在設定的持續時間 (漸進 + 保留時間) 內執行。

  5. 結果剖析 - 測試結束時,背景剖析任務會彙總和處理來自所有區域的結果。

測試執行狀態

測試執行可以有下列狀態:

  • 已排程 - 測試排程於未來執行。

  • 執行中 - 測試目前正在進行中。

  • 已取消 - 使用者已取消進行中的測試執行。

  • 發生錯誤 - 測試執行發生錯誤。

  • 完成 - 測試執行已成功完成,且結果已準備就緒。

使用即時資料進行監控

如果您在建立測試案例時啟用即時資料,您可以在測試執行時檢視即時指標。即時指標區段會顯示四個圖形,隨著測試進行而持續更新,並以一秒的間隔彙總資料。

顯示即時測試效能資料的即時指標圖表

圖形描述

平均回應時間

顯示每個區域處理之請求的平均回應時間,以秒為單位。Y 軸顯示以秒為單位的回應時間,而 X 軸顯示一天中的時間。每個區域在圖例中以不同的顏色表示。

虛擬使用者

顯示在每個區域中主動產生負載的並行虛擬使用者數量。圖表顯示虛擬使用者在測試期間如何加速並維持目標並行層級。

成功的請求

顯示每個區域隨時間成功請求的累積計數。圖表顯示處理成功請求的速率。

失敗的請求

顯示每個區域隨時間失敗請求的累積計數。低計數或零計數表示測試執行狀態良好。

多區域視覺化

跨多個區域執行測試時,每個圖形會同時顯示所有區域的資料。每個圖形底部的圖例可識別代表每個區域的顏色 (例如 us-west-2 和 us-east-1)。

技術實作

Fargate 任務的 CloudWatch 日誌群組包含擷取測試結果的訂閱篩選條件。偵測到模式時,Lambda 函數會建構資料並將其發佈至 AWS IoT Core 主題。Web 主控台會訂閱此主題,並即時顯示指標。

注意

即時資料是暫時性的,只有在測試執行時才能使用。Web 主控台最多會保留 5,000 個資料點,之後會將最舊的資料取代為最新的資料點。如果頁面重新整理,則圖表將為空白,並從下一個可用的資料點開始。測試完成後,解決方案會將結果資料存放在 DynamoDB 和 Amazon S3 中。如果還沒有可用的資料,圖形會顯示「沒有可用的資料」。

取消測試

您可以從 Web 主控台取消執行中的測試。當您取消測試時,會發生下列工作流程:

  1. 取消請求會傳送至 microservices API

  2. microservices API 會呼叫 task-canceler Lambda 函數,以停止所有目前啟動的任務

  3. 如果 task-runner Lambda 函數在初始取消呼叫後繼續執行,任務可能會短暫地繼續啟動

  4. task-runner Lambda 函數完成後,AWS Step Functions 會繼續Cancel Test執行步驟,再次執行 task-canceler Lambda 函數以停止任何剩餘的任務

注意

當解決方案終止所有容器時,取消的測試需要一些時間來完成關閉程序。清除所有資源後,測試狀態會變更為「已取消」。