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

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

負載測試的一般概念

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

虛擬使用者

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

Apache JMeter 也會將虛擬用戶 稱為線程。 在 JMeter 測試文稿中, 線程群組 元素可讓您指定虛擬使用者的集區。 瞭解 Apache JMeter 檔中的線程群組

負載測試的虛擬用戶總數取決於測試腳本中的虛擬用戶數目和測試引擎實例數目

公式為:虛擬用戶總數 = (JMX 檔案中的虛擬使用者) * (測試引擎實例的數目)。

您可以藉由 設定測試引擎實例數目、測試腳本中的虛擬用戶數目,或兩者的組合,來達成虛擬使用者的目標數目。

增加時間

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

回覆時間

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

Latency

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

每秒要求數 (RPS)

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

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

時間是從第一個樣本的開頭計算到最後一個樣本的結尾。 這個時間包含範例之間的任何間隔,例如,如果測試腳本包含 定時器

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

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

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

Azure 負載測試元件

瞭解 Azure 負載測試的重要概念和元件。 下圖提供不同概念彼此關聯的概觀。

Diagram that shows how the different concepts in Azure Load Testing relate to one another.

負載測試資源

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

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

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

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

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

Test

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

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

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

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

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

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

當您開始測試時,Azure 負載測試會將 JMeter 測試腳本、相關檔案和組態部署到測試引擎實例。 然後測試引擎實例會起始 JMeter 測試腳本,以模擬應用程式負載。

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

測試執行

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

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

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

重要

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

測試引擎

測試引擎是計算基礎結構,由執行 Apache JMeter 測試腳本的 Microsoft 所管理。 測試引擎實例會平行執行 JMeter 腳本。 您可以 藉由設定測試引擎實例的數目來相應放大負載測試 。 瞭解如何設定虛擬用戶數目,或模擬每秒的目標要求數目

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

當測試腳本執行時,Azure 負載測試會收集並匯總來自所有測試引擎實例的 Apache JMeter 背景工作記錄。 您可以 下載記錄,以在負載測試期間分析錯誤。

應用程式元件

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

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

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

計量

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

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

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

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