你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 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 thanless than
Threshold 必需。 要与客户端指标进行比较的数值。
Request 可选。 条件应用于的 JMeter 脚本中的采样器的名称。 如果未指定请求名称,则条件将适用于脚本中所有请求的集合。
请勿在 JMeter 脚本的采样器名称中包含任何个人数据。 采样器名称显示在 Azure 负载测试结果仪表板中。

失败条件支持的客户端指标

Azure 负载测试支持以下客户端指标:

指标 聚合函数 阈值 条件 说明
response_time_ms avg(平均)
min(最小值)
max(最大值)
pxx(百分位),xx 可以是 50、90、95、99
整数值,表示毫秒数 (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 门户中为负载测试配置测试条件。

  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. 选择“应用”或查看 + 创建”(如果要创建新的负载测试)以保存更改。

后续步骤