使用 Azure 負載測試,定義負載測試的失敗準則
在本文中,您會了解如何使用 Azure 負載測試,定義負載測試的失敗準則或自動停止準則。 失敗準則讓您定義應用程式在負載下的效能和品質期望。 Azure 負載測試支援各種用戶端和伺服器計量來定義失敗準則,例如 Azure 資源的錯誤率或 CPU 百分比。 自動停止準則可讓您在錯誤率超過指定的閾值時自動停止負載測試。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
- Azure 負載測試資源。 如果您需要建立 Azure 負載測試資源,請參閱快速入門「建立和執行負載測試」。
負載測試失敗準則
負載測試失敗準則是計量的條件,您的測試應該符合。 您可在 Azure 負載測試中定義負載測試層級的測試準則。 負載測試可有一或多個測試準則。 當至少有一個測試準則評估為 true 時,負載測試舊會得到失敗的狀態。
您可以針對負載測試定義最多 50 個測試準則。 如果相同計量有多個準則,則會使用具有最低閾值的準則。
用戶端計量的失敗準則結構
Azure 負載測試中的失敗準則格式,遵循支援計量的條件陳述式格式。 例如,確保每秒的平均要求數目大於 500。
針對用戶端計量,您可以在兩個層級定義測試準則。 負載測試可以結合不同層級的準則。
- 在負載測試層級。 例如,為確保總錯誤百分比不超過閾值。 準則的結構為:
Aggregate_function (client_metric) condition threshold
。 - 在 JMeter 要求層級 (JMeter 取樣工具)。 例如,您可以指定 getProducts 要求的回應時間閾值,但忽略「登入」要求的回應時間。 準則的結構為:
Request: Aggregate_function (client_metric) condition threshold
。
下表描述不同的元件:
參數 | 描述 |
---|---|
Client metric |
必要。 應套用該條件的用戶端計量。 |
Aggregate function |
必要。 要套用於用戶端計量的彙總函式。 |
Condition |
必要。 比較運算子,例如 greater than 或 less than 。 |
Threshold |
必要。 要與用戶端計量比較的數值。 |
Request |
選擇性。 準則套用的 JMeter 指令碼中取樣工具的名稱。 如果您未指定要求名稱,準則會套用至指令碼中所有要求的彙總。 請勿在 JMeter 指令碼的取樣器名稱中包含任何個人資料。 取樣器名稱會出現在 Azure 負載測試結果儀表板中。 |
支援失敗準則的用戶端計量
Azure 負載測試支援下列用戶端計量:
計量 | 彙總函式 | 臨界值 | Condition | 描述 |
---|---|---|---|---|
response_time_ms |
avg (平均值)min (最小值)max (最大值)pxx (百分位數),xx 可以是 50、75、90、95、96、97、98、99、999 和 9999 |
整數值,表示毫秒數 (ms)。 | > (大於)< (小於) |
回應時間或已耗用時間 (以毫秒為單位)。 透過 Apache JMeter 文件深入了解已耗用時間。 |
latency |
avg (平均值)min (最小值)max (最大值)pxx (百分位數),xx 可以是 50、90、95、99 |
整數值,表示毫秒數 (ms)。 | > (大於)< (小於) |
延遲 (以毫秒為單位)。 透過 Apache JMeter 文件深入了解延遲。 |
error |
percentage |
範圍 0-100 的數值,表示百分比。 | > (大於) |
失敗要求的百分比。 |
requests_per_sec |
avg (平均值) |
最多取到小數點後兩位的數值。 | > (大於) < (小於) |
每秒的要求數目。 |
requests |
count |
整數值。 | > (大於) < (小於) |
要求的總數。 |
定義用戶端計量的負載測試失敗準則
在本節中,您會為 Azure 入口網站 中的負載測試設定用戶端計量的測試準則。
在 Azure 入口網站中,移至您的 Azure 負載測試資源。
在左窗格中,選取 [測試] 檢視負載測試的清單。
從清單選取您的負載測試,然後選取 [編輯]。
在 [測試準則] 窗格上,填入測試的 [計量]、[彙總函式]、[條件] 和 [閾值] 值。
選擇性輸入要求名稱資訊,新增特定 JMeter 要求的測試準則。 此值應符合 JMX 檔案中 JMeter 取樣工具的名稱。
選取 [套用] 以儲存變更。
現在當您執行負載測試時,Azure 負載測試會使用測試準則來判斷負載測試回合的狀態。
執行測試,並在負載測試儀表板中檢視狀態。
儀表板會顯示每個測試準則和其狀態。 如果至少有一項準則符合,則整體測試狀態為失敗。
存取伺服器計量測試準則的應用程式元件
當您在應用程式元件中的計量上設定失敗準則時,負載測試資源會使用 受控識別 來存取該元件。 設定受控識別之後,您必須授與負載測試資源許可權的受控識別,以從應用程式元件讀取這些值。
若要授與 Azure 負載測試資源許可權,以從您的應用程式元件讀取計量:
在 Azure 入口網站 中,移至您的應用程式元件。
在左窗格中,選取 [存取控制 [IAM],然後選取 [+ 新增],然後選取 [新增角色指派]。
在 [角色] 索引標籤的 [作業函式角色] 底下,搜尋 [監視讀取者] 或 [監視參與者]。
在 [成員] 索引標籤的 [指派存取權] 底下,選取 [受控識別]。
單擊 [ 選取成員],搜尋並選取負載測試資源的受控識別,然後選取 [ 下一步]。 如果您使用系統指派的受控識別,則受控識別名稱會符合 Azure 負載測試資源的名稱。
選取 [ 檢閱 + 指派 ] 以指派許可權的身分識別。
當您的測試執行時,與負載測試資源相關聯的受控識別現在可以從應用程式元件讀取負載測試的計量。
定義伺服器計量的負載測試失敗準則
重要
Azure 負載測試不支援從 Azure Pipelines/GitHub Actions 在伺服器端計量上設定失敗準則。
在本節中,您會在伺服器端計量上設定 Azure 入口網站 負載測試的測試失敗準則。
在 Azure 入口網站中,移至您的 Azure 負載測試資源。
選取 [ 建立測試]。
在 [ 監視] 索引標籤下, 設定您要在測試期間監視的應用程式元件 。
設定 計量參考身分識別。 身分識別可以是負載測試資源的系統指派身分識別,或任一使用者指派的身分識別。 請確定您是使用先前已授權存取的相同身分識別。
在 [ 測試準則] 窗格上,填入您測試的資源 標識符、命名空間、計量、匯總、條件、閾值 。 您只能在測試期間監視的資源/應用程式元件設定失敗準則。
選取 [套用] 以儲存變更。 現在當您執行負載測試時,Azure 負載測試會使用測試準則來判斷負載測試回合的狀態。
執行測試,並在負載測試儀表板中檢視狀態。 儀表板會顯示每個測試準則和其狀態。 如果至少有一項準則符合,則整體測試狀態為失敗。
自動停止組態
如果錯誤百分比超過特定時間範圍的指定閾值,Azure 負載測試會自動停止負載測試。 自動停止可保護您免受失敗測試進一步產生成本,例如,因為設定不正確的端點 URL。
在負載測試組態中,您可以啟用或停用自動停止功能,並設定錯誤百分比閾值和時間範圍。 根據預設,Azure 負載測試會自動停止錯誤百分比在任何 60 秒時間範圍期間至少為 90% 的負載測試。
您可以使用 Azure 負載測試自動停止功能搭配 JMeter 指令碼中的 AutoStop 接聽程式。 當自動停止組態或 JMeter AutoStop 接聽程式中的其中一個準則符合時,負載測試會自動停止。
警告
如果您停用負載測試的自動停止,即使負載測試設定不正確,也可能會產生成本。
在 Azure 入口網站中設定負載測試的自動停止:
在 Azure 入口網站中,移至您的 Azure 負載測試資源。
在左窗格中,選取 [測試] 檢視負載測試的清單。
從清單選取您的負載測試,然後選取 [編輯]。 或者,選取 [建立] > [上傳 JMeter 指令碼] 建立新的測試。
移至 [測試準則] 索引標籤,設定自動停止功能。
使用 [自動停止測試] 控制項,啟用或停用自動停止負載測試。
如果啟用自動停止,您可以填入 [錯誤百分比] 和 [時間範圍] 欄位。 指定時間範圍 (秒)。
選取 [套用],或 [檢閱 + 建立] (如果您要建立新的負載測試) 儲存變更。