使用的工具 - AWS 方案指引

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

使用的工具

k6

k6 是一種免費工具,可提供負載來源的支援、託管,以及整合的 Web 界面,以組織、執行和分析負載測試。

k6 是以 Go 撰寫,並以單一可執行檔形式運送。它將使用來源系統的所有核心。它使用 JavaScript 的子集來執行複雜的案例,且包含測試設定檔。您可以使用 JavaScript 建立高效執行的複雜測試案例。輸出可以是摘要,也可以是許多目標儲存的詳細輸出。支援擴充功能,但除了官方 k6 擴充功能之外,維護良好的擴充功能很少。

大多數負載測試可以從單一伺服器執行,如果伺服器足夠大,這將避免更複雜的分散式負載測試。

負載測試結果可以轉送至 Amazon Managed Service for PrometheusAmazon CloudWatch 或其他監控服務以進行更詳細的分析。還可以在案例程式碼中包含成功條件,以在持續整合 (CI) 管道中執行它。

Vegeta

Vegeta 負載測試遵循不同的概念。您可以定義特定速率,而不是定義並行或向系統施加負載。然後,此工具會建立獨立於系統回應時間的負載。

這是探索背壓案例或後端程序的長期行為的好方法,您希望在其中消除回應時間和測試的影響。此工具無法執行複雜行為,但您可以執行不需要在請求之間傳遞資訊的任何請求序列。

Vegeta 也可以用作 Go 應用程式庫。這樣,您就可以實作自己的負載測試,並擁有強大的後端。儘管使用其他工具可能比實作自己的測試更有意義。

Hey 和 ab

Heyab (Apache HTTP 伺服器基準測試工具) 是基本工具,您可以從命令列將其用於在單一端點上執行指定的負載。如果您具有伺服器來執行這些工具,這是產生負載的最快方法。即使本機筆記型電腦也能執行,儘管它可能不足以產生高負載。

Apache JMeter

Apache JMeter 是經驗豐富的、功能強大的工具。多年來,Apache JMeter 變得更加可靠並新增了功能。使用圖形介面,您無需了解程式設計語言即可建立複雜的測試。BlazeMeter 等公司支援 Apache JMeter。

AWS上的分散式負載測試

AWS 解決方案上的分散式負載測試支援使用自訂 Apache JMeter 指令碼。當您在 AWS 解決方案上使用分散式負載測試時,您可以上傳 Apache JMeter 指令碼,以在雲端中執行測試。另一個好處是輸出支援。您可以將事件串流至時間串流資料庫並在頂部執行進階查詢,從而讓您詳細了解完整的測試執行。若要使用此工具,請在 AWS 主控台中啟動 範本

砲兵

Artillery 提供新的雲端自訂功能。Artillery 的突出功能之一是能夠 AWS 帳戶 使用 AWS Lambda 函數 (容器模式) 和 等無伺服器架構,直接從 執行測試 AWS Fargate。這種無伺服器方法不需要管理專用基礎設施,提供高度可擴展且符合成本效益的負載測試解決方案。

Artillery 也有內建的自動化,可用來佈建和銷毀執行測試所需的資源。與傳統工具不同,您不需要將基礎設施撰寫為程式碼 (IaC) 指令碼或手動管理雲端資源。Artillery 負責處理一切,這使得它成為現代雲端原生應用程式的高效且適合開發人員的選擇。

最後,Artery 支援 GitHub 動作,以與現有的持續整合和交付 (CI/CD) 管道整合。