你当前正在访问 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、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 门户中为负载测试配置测试条件。

  1. Azure 门户中,转到 Azure 负载测试资源。

  2. 在左侧窗格中,选择“测试”以查看负载测试列表

  3. 从列表中选择你的负载测试,然后选择“编辑”

    Azure 门户中 Azure 负载测试资源的测试列表的屏幕截图,其中突出显示了“编辑”按钮。

  4. 在“测试条件”窗格中,填写测试的“指标”、“聚合函数”、“条件”和“阈值”值

    Azure 门户中负载测试的“测试条件”窗格的屏幕截图,其中突出显示了用于添加测试条件的字段。

    (可选)输入“请求名称”信息以添加特定 JMeter 请求的测试条件。 该值应与 JMX 文件中 JMeter 采样器的名称匹配。

    JMeter 用户界面的屏幕截图,其中突出显示了请求名称。

  5. 选择“应用”保存更改。

    现在,在运行负载测试时,Azure 负载测试将使用测试条件来确定负载测试运行的状态。

  6. 运行测试并在负载测试仪表板中查看状态。

    仪表板会显示每个测试条件及其状态。 如果至少满足一个条件,则总体测试状态为失败。

    一个屏幕截图,其中显示了负载测试仪表板中的测试条件。

自动停止配置

如果错误百分比超过特定时间范围内给定的阈值,Azure 负载测试会自动停止负载测试。 自动停止可避免因测试失败(例如因终结点 URL 配置错误)而产生更多成本。

在负载测试配置中,可以启用或禁用自动停止功能,并配置错误百分比阈值和时间范围。 默认情况下,Azure 负载测试会自动停止在任意 60 秒时间范围内错误百分比至少为 90% 的负载测试。

可以将 Azure 负载测试自动停止功能与 JMeter 脚本中的自动停止侦听程序结合使用。 当满足自动停止配置或 JMeter 自动停止侦听程序中的某个条件时,负载测试会自动停止。

注意

如果为负载测试禁用自动停止,即使负载测试配置不正确,也可能会产生费用。

在 Azure 门户中为负载测试配置自动停止:

  1. Azure 门户中,转到 Azure 负载测试资源。

  2. 在左侧窗格中,选择“测试”以查看负载测试列表

  3. 从列表中选择你的负载测试,然后选择“编辑”。 或者,选择“创建”>“上传 JMeter 脚本”,创建新的测试

  4. 转到“测试条件”选项卡,配置自动停止功能

    • 使用“自动停止测试”控件启用或禁用自动停止负载测试

    • 如果启用自动停止,则可以填充“错误百分比”和“时间窗口”字段。 指定时间范围(以秒为单位)。

      Azure 门户中负载测试的“测试条件”窗格的屏幕截图,其中突出显示了自动停止功能。

  5. 选择“应用”或“查看 + 创建”(如果要创建新的负载测试),以保存更改

后续步骤