

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

# 執行測試案例
<a name="run-test-scenario"></a>

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

![\[執行測試案例，顯示任務狀態和即時指標\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/distributed-load-testing-on-aws/images/running-test-overview.png)


## 案例詳細資訊檢視
<a name="scenario-details-view"></a>

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

 **任務狀態資料表** 

任務狀態資料表顯示每個區域的即時資訊：
+  **區域** - 執行任務的 AWS 區域
+  **任務計數** - 針對區域設定的任務總數
+  **並行** - 每個任務的虛擬使用者數量
+  **執行**中 - 目前正在執行測試的任務數量
+  **待處理** - 等待啟動的任務數量
+  **佈建** - 正在佈建的任務數量

## 測試執行工作流程
<a name="test-execution-workflow"></a>

當測試開始時，會發生下列工作流程：

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

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

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

1.  **測試執行** - 測試在設定的持續時間 （漸進 \$1 保留時間） 內執行。

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

## 測試執行狀態
<a name="test-statuses"></a>

測試執行可以有下列狀態：
+  **已排程** - 測試排程於未來執行。
+  **執行**中 - 測試目前正在進行中。
+  **已取消** - 使用者已取消進行中的測試執行。
+  **發生錯誤** - 測試執行發生錯誤。
+  **完成** - 測試執行已成功完成，且結果已準備就緒。

## 使用即時資料進行監控
<a name="monitoring-live-data"></a>

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

![\[顯示即時測試效能資料的即時指標圖表\]](http://docs.aws.amazon.com/zh_tw/solutions/latest/distributed-load-testing-on-aws/images/real-time-metrics.png)


 **圖形描述** 

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

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

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

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

 **多區域視覺化** 

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

 **技術實作** 

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

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

## 取消測試
<a name="cancelling-tests"></a>

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

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

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

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

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

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