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

在 Azure 负载测试中创建和管理测试

了解如何在 Azure 负载测试资源中创建和管理 负载 测试。

先决条件

  • 具有活动订阅的 Azure 帐户。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户
  • 一个 Azure 负载测试资源。 若要创建负载测试资源,请参阅创建并运行负载测试

创建测试

有两个选项可用于在Azure 门户中创建负载测试:

  • 使用 Web 应用程序 URL(基于 URL 的测试)创建快速测试。
  • 通过上传 JMeter 测试脚本 (JMX) 来创建测试。

Screenshot that shows the options to create a new test in the Azure portal.

使用 URL 创建快速测试

若要对单个 HTTP 终结点进行负载测试,可以使用Azure 门户中的快速测试体验,也称为基于 URL 的负载测试。 输入目标 URL 和基本加载参数,创建负载测试,而无需事先了解 JMeter 脚本。

创建快速测试时,Azure 负载测试将生成相应的 JMeter 脚本,确定负载测试配置,并运行负载测试。

若要指定目标负载,请从两个选项中进行选择。 对于每个选项,可以输入不同的设置来定义应用程序负载。

加载类型 说明 加载设置
虚拟用户 负载测试模拟虚拟用户的目标数量。 目标在增加期间以增量达到。 Azure 负载测试配置测试引擎实例总数,如下所示:
#instances = #virtual users / 250

然后,每个测试引擎实例模拟虚拟用户(#total 虚拟用户/#test 引擎)。

快速测试的最大虚拟用户数为 11250。
- 虚拟用户数
- 测试持续时间(以秒为单位)
- 增加时间(以秒为单位)
每秒请求数 根据估计的终结点响应时间,负载测试模拟每秒的目标请求数(RPS)。
Azure 负载测试根据 RPS 和响应时间确定负载测试的虚拟用户总数:
#virtual users = (RPS * response time) / 1000

然后,该服务根据虚拟用户的总数配置测试引擎实例数和每个实例的虚拟用户数。
- 每秒请求数
- 响应时间(以毫秒为单位)
- 测试持续时间(以秒为单位)
- 增加时间(以秒为单位)

若要在Azure 门户中创建快速测试,

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

  2. 在“概述”页上选择“快速测试”。

    或者,在左窗格中选择“测试”,选择“+ 创建”,然后选择“创建快速测试”。

  3. 输入目标 URL 并加载参数。

    Screenshot that shows the page for creating a quick test in the Azure portal.

  4. 选择“运行测试”启动负载测试

    Azure 负载测试会自动生成一个 JMeter 测试脚本,并根据负载参数将测试配置为跨多个测试引擎进行缩放。

运行快速测试后,可以进一步 编辑负载测试配置。 例如,可以添加应用组件来 监视服务器端指标配置大规模负载或编辑生成的 JMeter 脚本。

使用 JMeter 脚本创建测试

若要重复使用现有的 JMeter 测试脚本,或用于更高级的测试场景,可以通过上传 JMX 文件来创建测试。 例如,从 CSV 输入文件读取数据,或配置 JMeter 用户属性。 有关详细信息,请参阅使用现有 JMeter 脚本创建负载测试

如果不熟悉如何创建 JMeter 脚本,请参阅 Apache JMeter 入门

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

  2. 在“概述”页上选择“创建”。

    或者,在左窗格中选择“测试”,选择“+ 创建”,然后选择“上传 JMeter 脚本”。

  3. 在“基本信息”页上,输入基本测试信息。

    如果选择“在创建后运行测试”,测试将自动启动。 创建测试后,可以随时手动启动测试。

    Screenshot that shows the page for creating a test with a J Meter script in the Azure portal.

测试计划

测试计划包含运行负载测试所需的所有文件。 测试计划至少应包含一个 *.jmx JMeter 脚本。 Azure 负载测试仅支持每个负载测试一个 JMX 文件。

除了测试脚本,还可以上传用户属性文件、配置文件或输入数据文件,例如 CSV 文件。

  1. 转到“测试计划”。

  2. 从本地计算机选择所有文件,并将其上传到 Azure。

    Screenshot that shows the test plan page for creating a test in the Azure portal, highlighting the upload functionality.

    Azure 负载测试将所有文件存储在单个存储库中。 如果测试脚本引用配置或数据文件,请确保删除 JMX 文件中的任何相对路径名称。

  3. 如果测试使用 CSV 输入数据,可以选择在测试引擎之间均匀地启用拆分 CSV。

    默认情况下,Azure 负载测试会在所有测试引擎实例中复制和处理未经修改的输入文件。 通过 Azure 负载测试,可以在所有引擎实例上均匀地拆分 CSV 输入数据。 如果有多个 CSV 文件,则每个文件被均匀拆分。

    例如,如果你有大型客户 CSV 输入文件,并且负载测试在 10 个并行测试引擎上运行,则每个实例都会处理客户的 1/10。 详细了解如何在 负载测试中读取 CSV 文件。

    Screenshot that shows the checkbox to enable splitting input C S V files when configuring a test in the Azure portal.

提示

可以通过在列表中选择文件名,从 “测试计划 ”选项卡下载文件。 例如,可以下载生成的 JMeter 脚本进行快速测试,对其进行修改,然后再次上传文件。

参数

可以使用参数使测试计划可配置,而不是 JMeter 脚本中的硬编码值。 在负载测试配置中指定键值对,并使用参数名称引用 JMeter 脚本中的值。 有关详细信息,请参阅使用环境变量和机密来参数化负载测试

Screenshot that shows how to configure parameters when creating a test in the Azure portal.

  1. 指定环境变量以将非敏感参数传递给测试脚本。

    例如,可以使用环境变量将目标域名或端口号传递给测试脚本。 详细了解如何在 负载测试中使用环境变量。

  2. 添加对 Azure 密钥库支持的机密的引用。

    使用机密将敏感参数(如密码或身份验证令牌)传递给测试脚本。 将机密值存储在 Azure 密钥保管库中,并在负载测试配置中添加对密钥的引用。 然后,可以使用参数名称在脚本中引用密钥。 然后,Azure 负载测试从 Azure 密钥库检索密钥值。

    详细了解 如何在负载测试中使用机密。

  3. 添加对 Azure 密钥库支持的客户端证书的引用。

    如果是使用基于证书的身份验证的负载测试应用程序终结点,可以将证书添加到 Azure Key Vault,并在负载测试配置中添加对证书的引用。 Azure 负载测试会自动在 JMeter 脚本中的 Web 请求中注入证书。

    详细了解如何将 基于证书的身份验证与 Azure 负载测试配合使用。

  4. 选择用于访问密钥保管库的机密或证书的托管标识。

    详细了解如何将 托管标识与 Azure 负载测试配合使用。

加载

  1. 指定测试引擎实例数。

    Azure 负载测试可跨所有实例自动缩放负载测试。 JMeter 测试脚本在所有实例之间并行运行。 模拟用户总数等于在 JMeter 脚本中指定的虚拟用户数(线程数),由测试引擎实例数乘以倍数。 有关详细信息,请参阅针对大规模负载配置测试

  2. 配置虚拟网络连接。

    可以将负载测试连接到 Azure 虚拟网络,以便对专用或本地终结点进行负载测试。 详细了解在 虚拟网络中部署 Azure 负载测试的方案。

    若要连接到虚拟网络,请选择专用流量模式,然后选择虚拟网络子网

Screenshot that shows how to configure the number of test engine instances when creating a test in the Azure portal.

测试条件

  1. 根据客户端指标指定测试失败条件。

    当负载测试超过指标的阈值时,负载测试将获取失败状态。 Azure 负载测试目前支持以下客户端指标来满足失败条件:

    • 响应时间
    • 每秒请求数
    • 请求总数
    • 延迟
    • 错误百分比

    可以为整个负载测试指定失败条件,或将它们分配给 JMeter 脚本中的特定请求。 例如,若要验证主页响应时间是否不超过特定的响应时间。 有关详细信息,请参阅 配置测试失败条件

  2. 配置自动停止条件。

    当错误率超过给定阈值时,Azure 负载测试可以自动停止负载测试运行。 可以启用或禁用此功能,并配置特定的错误率阈值和时间范围。 详细了解 如何配置自动停止条件

Screenshot that shows how to configure test criteria when creating a test in the Azure portal.

监视

对于 Azure 托管的应用程序,请在负载测试运行期间添加要监视的 Azure 应用组件。 Azure 负载测试捕获所选 Azure 应用组件的详细资源指标。 使用这些指标来确定 应用程序中的潜在性能瓶颈。

添加应用组件时,Azure 负载测试会自动选择该组件最相关的资源指标。 你可以随时为每个应用组件添加或删除资源指标。

Screenshot that shows how to configure the Azure app components to monitor when creating a test in the Azure portal.

负载测试完成后,测试结果仪表板会显示每个 Azure 应用组件和资源指标的图形。

Screenshot that shows the test result dashboard in the Azure portal.

有关详细信息,请参阅配置服务器端监视

运行测试

运行或重新运行负载测试时,Azure 负载测试使用最新的负载测试配置设置创建新的测试运行。 如果在应用更改检查框后编辑测试配置并检查运行测试,则保存更改后负载测试会自动启动。

若要在Azure 门户中运行负载测试,

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

  2. 在左窗格中选择 “测试 ”,然后通过选择列表中的测试名称转到测试详细信息。

  3. 选择“运行”。

  4. “运行 ”页上,可以选择输入测试运行说明并替代负载测试参数。

Screenshot that shows the run load test page in the Azure portal, allowing an override of the test run description and test parameters.

  1. 选择“运行以启动负载测试。

    该服务会创建一个新的测试运行,并提供的说明。

编辑测试

编辑负载测试配置设置时,这些设置将用于 将来 的测试运行。 重新运行以前的 测试运行时,将使用测试运行的设置,而不是测试的更新设置。

若要在Azure 门户中编辑测试,请执行以下命令:

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

  2. 在左窗格中选择“测试,然后通过检查相应的检查框从列表中选择测试。

  3. 选择“编辑”以更新测试配置设置。

    Screenshot that shows how to select and edit a load test in the Azure portal.

    或者,从列表中选择测试,然后选择“配置>测试”。

  4. 在“编辑测试”页中选择应用”以保存更改。

    下次运行测试,将使用更新的测试配置设置。

删除测试

若要删除Azure 门户中的测试,

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

  2. 在左窗格中选择“测试,然后通过检查相应的检查框从列表中选择测试。

  3. 选择“删除测试以删除测试。

    Screenshot that shows how to select and delete a load test in the Azure portal.

    或者,从列表中选择测试,然后在测试详细信息页上选择“ 删除测试 ”。

  4. “删除测试”页上,选择“删除”以确认删除测试。

注意

删除测试时,也会删除所有测试运行、日志、结果和指标数据。

后续步骤