什麼是 Azure 負載測試?
Azure 負載測試是完全受控的負載測試服務,可讓您產生大規模的負載。 無論應用程式的裝載位置為何,這項服務都會針對應用程式模擬流量。 開發人員、測試人員和品質保證 (QA) 工程師都可以利用這項服務來最佳化應用程式效能、可擴縮性或容量。
使用 URL 快速建立 Web 應用程式的負載測試,無需事先了解測試工具。 Azure 負載測試會提取複雜性和基礎結構,以大規模執行負載測試。
在更進階的負載測試案例中,您也可以上傳測試指令碼來建立負載測試。 Azure 負載測試支援執行 Apache JMeter 型測試或 Locust 型測試。 例如,您的測試計劃可能包含多個應用程式要求、您想要呼叫非 HTTP 端點,或使用輸入資料和參數,增加動態測試效果。
如果您的應用程式裝載在 Azure 上,Azure 負載測試會收集詳細的資源計量,協助您識別 Azure 應用程式元件上的效能瓶頸。
若要儘早擷取應用程式效能迴歸,請在持續整合與持續部署 (CI/CD) 工作流程加入負載測試。 利用測試失敗準則來定義及驗證您的應用程式品質需求。
Azure 負載測試可讓您測試裝載內部部署的私人應用程式端點或應用程式。 如需詳細資訊,請參閱在虛擬網路中部署 Azure 負載測試的案例。
下圖顯示 Azure 負載測試的結構概觀。
注意
概觀影像會顯示 Azure 負載測試如何使用 Azure 監視器來擷取應用程式元件的計量。 深入了解支援的 Azure 資源類型。
進一步了解 Azure 負載測試的重要概念。
使用方式情節
Azure 負載測試可以使用 Apache JMeter 或 Locust 測試架構,並支援各種不同的應用程式類型和通訊協定。 下列清單提供支援的應用程式或端點類型範例:
- Web 應用程式,使用 HTTP 或 HTTPS
- REST API
- 透過 JDBC 的資料庫
- 以 TCP 為基礎的端點
若使用 JMeter,您可以在測試指令碼中使用 JMeter 外掛程式,進行更多應用程式類型的負載測試。
透過快速測試體驗,您可以測試單一 URL 型 HTTP 端點。 藉由上傳 JMeter 指令碼,您可以使用所有 JMeter 支援的通訊協定。
Azure 負載測試目前不支援 Apache JMeter 和 Locust 以外的其他測試架構。
使用大規模負載來識別效能瓶頸
在應用程式負載不足的情況下,通常會一直偵測不到效能問題。 您可以在 Azure 入口網站中啟動大規模負載測試,以更快了解應用程式在壓力下的行為。 執行測試時,Azure 負載測試儀表板會提供用戶端和伺服器端計量的即時更新。
負載測試完成後,您可以使用儀表板來分析測試結果並識別效能瓶頸。 對於 Azure 裝載的應用程式,儀表板會顯示 Azure 應用程式元件的詳細資源計量。 開始使用教學課程,以識別 Azure 裝載應用程式的效能瓶頸。
Azure 負載測試會保留測試執行的歷程記錄,並可讓您透過視覺效果比較多個執行,以偵測一段時間的效能迴歸。
您也可以下載測試結果,使用第三方工具進行分析。
啟用自動化負載測試
您可以在開發生命週期間,在有意義的點整合 CI/CD 管線中的 Azure 負載測試。 例如,您可以在每個短期衝刺結束時或在預備環境中自動執行負載測試,以驗證候選版組建。
開始使用在 CI/CD 工作流程中加入負載測試,以快速識別應用程式在負載下的效能降低。
在測試組態中,指定測試失敗準則,以在開發週期中及早確認應用程式效能或穩定性迴歸。 例如,當平均回應時間或錯誤數超過特定閾值時,會收到警示。
Azure 負載測試會自動停止自動化負載測試,以回應特定錯誤狀況。 或者,您也可以在 Apache JMeter 指令碼中使用 AutoStop 接聽程式。 自動停止保護您免受失敗測試的進一步產生成本,例如,因為設定不正確的端點 URL。 了解如何設定負載測試的自動停止。
您可以從 Azure Pipelines 或 GitHub Actions 工作流程觸發 Azure 負載測試,或使用 Azure CLI 來整合其他 CI 工具。
Azure 負載測試的運作方式?
Azure 負載測試會使用 Apache JMeter 或 Locust 來執行負載測試。 您可以從 https://jmeter-plugins.org 使用 Apache JMeter 外掛程式,或上傳您自己的外掛程式程式碼。 Azure 負載測試支援 JMeter 支援的所有通訊協定。 例如,使用 Azure 負載測試對資料庫連線或訊息佇列進行負載測試。 深入了解支援的 Apache JMeter 功能。
Azure 負載測試的測試引擎會擷取執行大範圍負載測試所需的基礎結構。 每個測試引擎執行個體都會執行測試指令碼,以模擬大量虛擬使用者同時存取應用程式端點。 當您根據 URL 建立負載測試時 (快速測試),Azure 負載測試會自動產生測試指令碼。 若要擴增負載測試,您可以設定測試引擎的數目。
您可以在任何位置裝載負載的應用程式:在 Azure、內部部署或其他雲端中。 若要對沒有公用端點的服務執行負載測試,請在虛擬網路中部署 Azure 負載測試。
在負載測試期間,Azure 負載測試會收集下列資源計量並顯示在儀表板中:
用戶端計量會提供測試引擎所報告的詳細資料。 這些詳細資料包括虛擬使用者數目、要求回應時間或每秒要求數目。
伺服器端計量提供 Azure 應用程式元件的相關資訊。 Azure 負載測試會與 Azure 監視器 (包括 Application Insights 和 Container Insights) 整合,以從 Azure 服務擷取詳細資料。 視服務類型而定,可以使用不同的計量。 例如,計量可以是資料庫讀取數目、HTTP 回應的類型或容器資源耗用量。
Azure 負載測試會自動納入 Azure 網路的最佳做法,確保能安全、可靠地執行測試。 如果應用程式端點或 Azure 元件開始節流要求,負載測試會自動停止。
服務會使用 Microsoft 管理的金鑰 (服務管理的金鑰) 來自動加密所有儲存在負載測試資源中的資料。 例如,此資料包含 Apache JMeter 或 Locust 測試指令碼、組態檔等。 或者,您也可以將服務設定為使用客戶自控金鑰。
區域內資料落地
在您部署服務執行個體所在區域以外的位置,Azure 負載測試不會儲存或處理客戶資料。
相關內容
開始使用 Azure 負載測試: