分享方式:


新的 Azure 負載測試使用者的重要概念

了解 Azure 負載測試的重要概念和元件。 這些此資訊可協助您更有效地設定負載測試來識別應用程式中的效能問題。

負載測試的一般概念

了解與執行負載測試相關的重要概念。

虛擬使用者

虛擬使用者會對您的伺服器應用程式執行特定測試案例,並獨立於其他虛擬使用者執行。 您可以使用多個虛擬使用者來模擬與伺服器應用程式的並行連線。

Apache JMeter 也會將虛擬使用者稱為執行緒。 在 JMeter 測試指令碼中,執行緒群組元素可讓您指定虛擬使用者的集區。 了解 Apache JMeter 文件中的執行緒群組

負載測試的虛擬使用者總數取決於測試指令碼中的虛擬使用者數目和測試引擎執行個體數目。

公式為:虛擬使用者總數 = (JMX 檔案中的虛擬使用者) * (測試引擎執行個體數目)。

您可以藉由設定測試引擎執行個體數目、測試指令碼中的虛擬使用者數目,或兩者的組合,來達到虛擬使用者的目標數目。

上升時間

上升時間是取得負載測試虛擬使用者完整數目所需的時間量。 如果虛擬使用者數目為 20,而上升時間為 120 秒,則需要 120 秒才能取得所有 20 個虛擬使用者。 每個虛擬使用者都會在上一個使用者啟動後的 6 (120/20) 秒啟動。

回覆時間

個別要求的回應時間 (或 JMeter 中已耗用時間),是從開始傳送要求前到收到最後一個回應後的總時間。 回應時間不包含轉譯回應的時間。 負載測試期間不會處理任何用戶端程式代碼,例如 JavaScript。

延遲

個別要求的延遲是從開始傳送要求前到收到最後一個回應後的總時間。 延遲包括組合要求和組合回應第一個部分所需的所有處理。

每秒要求數 (RPS)

每秒要求數 (RPS) 或輸送量,是您負載測試每秒產生的伺服器應用程式要求總數。

公式為:RPS = (要求數目)/(以秒為單位的總時間)。

時間是根據從第一個樣本的開頭到最後一個樣本的結尾計算。 此時間包含範例之間的任何間隔,例如測試指令碼是否包含計時器

另一種計算 RPS 的方式,是以平均應用程式的延遲虛擬使用者數目為基礎。 若要使用負載測試來模擬特定數目的 RPS,假設應用程式的延遲,您可以接著計算所需的虛擬使用者數目。

公式為:虛擬使用者 = (RPS) * (以秒為單位的延遲)。

例如,假設應用程式延遲為 20 毫秒 (0.02 秒),若要模擬 100,000 RPS,您應該使用 2,000 個虛擬使用者 (100,000 * 0.02) 設定負載測試。

Azure 負載測試元件

了解 Azure 負載測試的重要概念和元件。 下圖提供了不同概念之間相互關聯的概觀。

顯示 Azure 負載測試中的不同概念如何相互關聯的圖表。

負載測試資源

Azure 負載測試資源是負載測試活動的最上層資源。 此資源提供集中的位置,可檢視及管理負載測試、測試結果以及相關成品。

當您建立負載測試資源時,您會指定其位置,以決定測試引擎的位置。 Azure 負載測試會自動加密資源中的所有成品。 您可以選擇 Microsoft 管理的金鑰,或使用自己的客戶自控金鑰進行加密。

若要執行應用程式的負載測試,請將測試新增至負載測試資源。 資源可以包含零或多個測試。

您可以使用 Azure 角色型存取控制,授與負載測試資源和相關成品的存取權。

Azure 負載測試可讓您使用受控識別來存取 Azure Key Vault,以儲存負載測試秘密參數或憑證。 您可以使用使用者指派或系統指派的受控識別。

Test

測試描述了您的應用程式的負載測試組態。 您會將測試新增至現有的 Azure 負載測試資源。

測試包含了測試計劃,其描述叫用應用程式端點的步驟。 您可以使用以下三種方式之一來定義測試計劃:

Azure 負載測試支援 JMeter 支援的所有通訊協定,而不只是 HTTP 型端點。 例如,您可能想要在測試指令碼中讀取或寫入資料庫或訊息佇列。

Azure 負載測試目前不支援 Apache JMeter 和 Locust 以外的其他測試架構。

此測試也會指定執行負載測試的組態設定:

此外,您也可以將 CSV 輸入資料檔和測試組態檔上傳至負載測試。

當您開始測試時,Azure 負載測試會將測試指令碼、相關檔案和組態部署到測試引擎執行個體。 然後測試引擎執行個體會起始測試指令碼,以模擬應用程式負載。

每次開始測試時,Azure 負載測試都會建立測試回合,並將其附加至測試。

測試執行

一個測試回合代表負載測試的一次執行。 當您執行測試時,測試回合會包含相關聯測試中的組態設定複本。

測試執行完成後,您可以在 Azure 入口網站的 Azure 負載測試儀表板中檢視和分析負載測試結果

或者,您也可以下載測試記錄,以及匯出測試結果檔案

重要

當您更新測試時,現有的測試回合不會自動從測試繼承新的設定。 只有在執行測試時,新的測試回合才會使用新的設定。 如果您重新執行現有的測試回合,則會使用測試回合的原始設定。

測試引擎

測試引擎是計算基礎結構,由執行測試指令碼的 Microsoft 所管理。 測試引擎執行個體會平行執行測試指令碼。 您可以藉由設定測試引擎執行個體的數目來相應放大負載測試。 了解如何設定虛擬使用者數目,或模擬每秒的目標要求數目。

測試引擎裝載於與 Azure 負載測試資源相同的位置。 您可以在建立 Azure 負載測試資源時設定 Azure 區域。

測試指令碼執行時,Azure 負載測試會收集並匯總來自所有測試引擎執行個體的測試架構記錄。 您可以下載記錄,以在負載測試期間分析錯誤

應用程式元件

當您針對 Azure 託管應用程式執行負載測試時,可以監視不同 Azure 應用程式元件的資源計量 (伺服器端計量)。 當負載測試執行時,以及測試完成後,您可以在 Azure 負載測試儀表板中監視和分析資源計量

當您建立或更新負載測試時,可以設定 Azure 負載測試將監視的應用程式元件清單。 您可以修改每個應用程式元件的預設資源計量清單。

深入了解 Azure 負載測試支援哪些 Azure 資源類型

計量

在負載測試期間,Azure 負載測試會收集有關測試執行的計量。 計量的類型有兩種:

  • 測試引擎會報告用戶端計量。 這些計量包括虛擬使用者數目、要求回應時間、失敗要求數目或每秒要求數目。 您可以根據這些用戶端計量來定義測試失敗準則

  • 伺服器端計量適用於 Azure 裝載的應用程式,並提供 Azure 應用程式元件的相關資訊。 Azure 負載測試會與 Azure 監視器 (包括 Application Insights 和 Container Insights) 整合,以從 Azure 服務擷取詳細資料。 視服務類型而定,可以使用不同的計量。 例如,計量可以是資料庫讀取數目、HTTP 回應的類型或容器資源耗用量。

您現在已知道 Azure 負載測試的重要概念,可以開始建立負載測試。