本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Backend
後端包含容器映像管道和負載測試引擎,您用來為測試產生負載。您可以透過前端與後端互動。此外,針對每個測試啟動的 AWS Fargate 任務上的 Amazon ECS 會以唯一的測試識別符 (ID) 標記。這些測試 ID 標籤可用來協助您監控此解決方案的成本。如需詳細資訊,請參閱《AWS Billing and Cost Management 使用者指南》中的使用者定義的成本分配標籤。
容器映像管道
此解決方案使用以 Amazon Linux 2023
任務使用的映像取決於測試的流量形狀模式。如需模式的詳細資訊,請參閱流量形狀模式。
-
標準模式使用已安裝 Taurus
負載測試架構的單一映像。Taurus 是一種開放原始碼測試自動化架構,支援 JMeter、k6、Locust 和其他測試工具。它會將您在主控台中設定的載入參數套用至測試使用的任何架構。 -
原生模式會針對每個不含 Taurus 的測試架構 (JMeter、k6 或 Locust) 使用專用映像。每個映像都會直接針對您的指令碼執行其架構。
如需詳細資訊,請參閱本指南的容器映像自訂一節。
測試架構佈建
三個支援的測試架構佈建在解決方案生命週期的不同點,以平衡映像大小與版本彈性:
-
Apache JMeter — 在堆疊部署期間於您帳戶中的 S3 儲存貯體中暫存,並在 JMeter 或 Simple HTTP 端點測試執行時於測試執行時間擷取。
-
Grafana k6 — 直接從架構提供者下載,並僅在 k6 測試執行時擷取。
-
Locust — 在建置時安裝在容器映像中,並保持閒置狀態,直到 Locust 測試執行為止。
在這兩種流量形狀模式中,佈建的運作方式相同。原生模式映像會在生命週期中與標準模式映像相同的時間點取得每個架構。因此,以下網路和部署需求適用於兩者。
注意
k6 需要在測試執行時間存取 Grafana k6 版本的傳出網路。受限的輸出會導致 k6 測試在下載步驟失敗。
測試基礎設施
除了主要 CloudFormation 範本之外,解決方案還提供區域範本,以啟動在多個區域中執行測試所需的資源。解決方案會將此範本存放在 Amazon S3 中,並在 Web 主控台中提供其連結。每個區域堆疊都包含 VPC、AWS Fargate 叢集,以及用於處理即時資料的 Lambda 函數。
如需如何在其他 區域中部署測試基礎設施的詳細資訊,請參閱本指南的多區域部署一節。
負載測試引擎
分散式負載測試解決方案使用 Amazon Elastic Container Service (Amazon ECS) 和 AWS Fargate 模擬多個區域的數千名並行使用者,以持續的速度產生 HTTP 請求。
您可以使用隨附的 Web 主控台來定義測試參數。解決方案使用這些參數來產生 JSON 測試案例,並將其存放在 Amazon S3 中。如需測試指令碼和測試參數的詳細資訊,請參閱本節中的測試類型。
AWS Step Functions 狀態機器會在 AWS Fargate 叢集中執行和監控 Amazon ECS 任務。AWS Step Functions 狀態機器包含 ecr-checker AWS Lambda 函數、task-status-checker AWS Lambda 函數、任務執行器 AWS Lambda 函數、任務取消器 AWS Lambda 函數,以及結果剖析器 AWS Lambda 函數。如需工作流程的詳細資訊,請參閱本指南的測試執行工作流程一節。如需測試結果的詳細資訊,請參閱本指南的探索測試結果一節。如需測試取消工作流程的詳細資訊,請參閱本指南的取消測試一節。
如果您選擇即時資料,解決方案會透過對應至該區域中 Fargate 任務的 CloudWatch 日誌,real-time-data-publisher Lambda 函數。解決方案接著會在您啟動主要堆疊的區域中,處理資料並將其發佈至 AWS IoT Core 中的主題。如需詳細資訊,請參閱本指南的使用即時資料監控一節。