使用 Azure 負載測試定義負載測試的失敗準則

在本文中,您將瞭解如何使用 Azure 負載測試來定義負載測試的失敗準則或自動停止準則。 失敗準則可讓您定義負載下應用程式的效能和質量預期。 Azure 負載測試支援各種用戶端計量來定義失敗準則,例如錯誤率或回應時間。 自動停止準則可讓您在錯誤率超過指定的閾值時自動停止負載測試。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶
  • Azure 負載測試資源。 如果您需要建立 Azure 負載測試資源,請參閱快速入門 建立和執行負載測試

負載測試失敗準則

負載測試失敗準則是用戶端計量的條件,您的測試應該符合。 您可以在 Azure 負載測試中的負載測試層級定義測試準則。 負載測試可以有一或多個測試準則。 當至少有一個測試準則評估為 true 時,負載測試會取得 失敗 狀態。

您可以在兩個層級定義測試準則。 負載測試可以結合不同層級的準則。

  • 在負載測試層級。 例如,為了確保總錯誤百分比不會超過臨界值。
  • 在 JMeter 要求層級(JMeter 取樣器)。 例如,您可以指定 getProducts 要求的響應時間閾值,但忽略登入要求的響應時間

您可以定義負載測試的最多50個測試準則。 如果相同用戶端計量有多個準則,則會使用具有最低閾值的準則。

失敗準則結構

Azure 負載測試中的失敗準則格式遵循所支援計量的條件語句。 例如,請確定每秒的要求平均數目大於 500。

失敗準則具有下列結構:

  • 負載測試層級的測試準則: Aggregate_function (client_metric) condition threshold
  • 套用至特定 JMeter 要求的測試準則: 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、90、95、99
整數值,表示毫秒數(毫秒)。 > (大於)
< (小於)
回應時間或經過的時間,以毫秒為單位。 在 Apache JMeter 檔中深入了解經過的時間。
latency avg (平均)
min (最小值)
max (最大值)
pxx (百分位數),xx 可以是 50、90、95、99
整數值,表示毫秒數(毫秒)。 > (大於)
< (小於)
延遲,以毫秒為單位。 深入瞭解 Apache JMeter 檔中的延遲。
error percentage 範圍0-100中的數值,代表百分比。 > (大於) 失敗要求的百分比。
requests_per_sec avg (平均) 具有最多兩個小數位數的數值。 > (大於)
< (小於)
每秒的要求數目。
requests count 整數值。 > (大於)
< (小於)
要求總數。

定義負載測試失敗準則

在本節中,您會在 Azure 入口網站 中設定負載測試的測試準則。

  1. Azure 入口網站 中,移至您的 Azure 負載測試資源。

  2. 在左窗格中,選取 [ 測試 ] 以檢視負載測試清單。

  3. 從清單中選取負載測試,然後選取 [ 編輯]。

    Screenshot of the list of tests for an Azure load testing resource in the Azure portal, highlighting the 'Edit' button.

  4. 在 [ 測試準則] 窗格中,填入您測試的 [計量]、 [匯總] 函式[條件] 和 [閾值 ]。

    Screenshot of the 'Test criteria' pane for a load test in the Azure portal and highlights the fields for adding a test criterion.

    或者,輸入 要求名稱 資訊,以新增特定 JMeter 要求的測試準則。 此值應該符合 JMX 檔案中 JMeter 取樣器的名稱。

    Screenshot of the JMeter user interface, highlighting the request name.

  5. 選取 [ 套用 ] 以儲存變更。

    當您現在執行負載測試時,Azure 負載測試會使用測試準則來判斷負載測試回合的狀態。

  6. 執行測試,並在負載測試儀錶板中檢視狀態。

    儀錶板會顯示每個測試準則及其狀態。 如果至少符合一個準則,則整體測試狀態會失敗。

    Screenshot that shows the test criteria on the load test dashboard.

自動停止設定

如果錯誤百分比超過特定時間範圍指定的閾值,Azure 負載測試會自動停止負載測試。 自動停止保護您免受失敗測試的進一步產生成本,例如,因為設定不正確的端點 URL。

在負載測試組態中,您可以啟用或停用自動停止功能,並設定錯誤百分比閾值和時間範圍。 根據預設,Azure 負載測試會自動停止負載測試,其錯誤百分比在任何 60 秒時間範圍中至少為 90%。

您可以使用 Azure 負載測試自動停止功能搭配 JMeter 腳本中的 AutoStop 接聽程式 。 當符合自動停止設定或 JMeter AutoStop 接聽程式中的其中一個準則時,負載測試會自動停止。

警告

如果您停用負載測試的自動停止,即使負載測試設定不正確,也可能會產生成本。

若要在 Azure 入口網站 中設定負載測試的自動停止:

  1. Azure 入口網站 中,移至您的 Azure 負載測試資源。

  2. 在左窗格中,選取 [ 測試 ] 以檢視負載測試清單。

  3. 從清單中選取負載測試,然後選取 [ 編輯]。 或者,選取 [建立>上傳 JMeter 腳本 ] 以建立新的測試。

  4. 移至 [ 測試準則] 索引標籤 ,以設定自動停止功能。

    • 使用 自動停止測試控制件啟用或停用自動停止負載測試

    • 如果您啟用自動停止,您可以填入 [錯誤百分比 ] 和 [時間範圍 ] 字段。 以秒為單位指定時間範圍。

      Screenshot of the 'Test criteria' pane for a load test in the Azure portal, highlighting the auto stop functionality.

  5. 如果您正在建立新的負載測試,請選取 [ 套用] 或 [檢閱 + 建立 ],以儲存變更。

下一步