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 測試架構,並支援各種不同的應用程式類型和通訊協定。 下列清單提供支援的應用程式或端點類型範例:
- 使用 HTTP 或 HTTPS 的 Web 應用程式
- REST API
- 透過 JDBC 的資料庫
- 以 TCP 為基礎的端點
對於 JMeter,您可以在測試腳本 中使用 JMeter 外掛程式 ,您可以載入測試更多應用程式類型。 針對 Locust,您可以使用 第三方延伸模組、Locust 外掛程式或任何其他 Python 連結庫來擴充 Locust 的功能。
透過快速測試體驗,您可以 測試單一 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 來執行負載測試。 您可以使用 Apache JMeter 外掛程式, https://jmeter-plugins.org 或 上傳您自己的外掛程式程式代碼。 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 負載測試: