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

在 Azure 负载测试中使用 JMeter 脚本对网站进行负载测试

了解如何使用 Apache JMeter 脚本,通过 Azure 门户的 Azure 负载测试或通过使用 Azure CLI 对 Web 应用程序进行负载测试。 使用 Azure 负载测试可以获取现有的 Apache JMeter 脚本,并使用它以云规模运行负载测试。 详细了解 Azure 负载测试支持哪些 JMeter 功能

使用现有 JMeter 脚本创建负载测试的用例包括:

  • 你想要重复使用现有的 JMeter 脚本来测试应用程序。
  • 需要测试不基于 HTTP 的终结点,例如数据库或消息队列。 Azure 负载测试支持 JMeter 支持的所有通信协议。
  • 要使用 CLI 命令,请使用 Azure CLI 版本 2.2.0 或更高版本。 运行 az --version 即可查找在计算机上安装的版本。 如果需要安装或升级 Azure CLI,请参阅如何安装 Azure CLI

先决条件

创建 Azure 负载测试资源

首先,为 Azure 负载测试创建顶级资源。 该资源提供一个集中位置用于查看和管理测试计划、测试结果和相关项目。

如果已有负载测试资源,请跳过本部分并继续创建负载测试

要创建负载测试资源,请执行以下操作:

  1. 使用 Azure 订阅的凭据登录到 Azure 门户

  2. 在 Azure 门户菜单上或在门户主页中,选择“创建资源”。

  3. 在“市场”页上,搜索并选择“Azure 负载测试”

  4. 在“Azure 负载测试 窗格”中选择“创建”。

  5. 在“创建负载测试资源”页上输入以下信息

    字段 说明
    订阅 选择要用于此 Azure 负载测试资源的 Azure 订阅。
    资源组 选择现有资源组。 或者选择“新建”,然后为新资源组输入唯一名称。
    名称 输入唯一名称用于标识你的 Azure 负载测试资源。
    该名称不能包含特殊字符,例如 \/""[]:|<>+=;,?*@&, 或空格。 该名称不能以下划线 (_) 开头,并且不能以句点 (.) 或 破折号 (-) 结尾。 长度必须为 1 到 64 个字符。
    位置 选择一个地理位置用于托管你的 Azure 负载测试资源。
    此位置还决定了测试引擎的托管位置,以及测试框架请求的来源。

    注意

    (可选)可以在“标记”选项卡上配置更多详细信息。标记是名称/值对,通过将相同的标记应用到多个资源和资源组,可以对资源进行分类并查看合并的计费。

  6. 完成资源配置后,选择“查看 + 创建”。

  7. 查看提供的设置,然后选择“创建”。 创建帐户需要几分钟时间。 等待门户页显示“部署已完成”后再继续。

  8. 若要查看新资源,请选择“转到资源”。

    屏幕截图显示了部署完成屏幕。

  9. 还可以管理对 Azure 负载测试资源的访问(可选)。

    Azure 负载测试使用基于角色的访问控制 (RBAC) 管理针对资源的权限。 如果遇到此消息,则表明你的帐户没有管理测试所需的权限。

    屏幕截图显示 Azure 门户中未授权使用 Azure 负载测试资源的错误消息。

创建负载测试

接下来,通过上传 Apache JMeter 测试脚本(JMX 文件)来创建负载测试。 测试脚本包含模拟流向应用程序终结点的流量的应用程序请求。

使用 Azure 门户中的现有 JMeter 脚本创建负载测试:

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

  2. 在左侧导航中,选择“测试”以查看所有测试。

  3. 选择“+ 创建”,然后选择“上传 JMeter 脚本”。

    屏幕截图显示了 Azure 负载测试页和用于创建新测试的按钮。

  4. 在“基本信息”选项卡中输入负载测试详细信息

    字段 说明
    测试名称 输入唯一的测试名称。
    测试说明 (可选)输入负载测试说明。
    创建后运行测试 选择此设置可在保存负载测试后自动启动负载测试。
  5. 在“测试计划”选项卡上选择你的 Apache JMeter 脚本,然后选择“上传”以将文件上传到 Azure

    屏幕截图显示了“测试计划”选项卡。

    注意

    可以上传更多 JMeter 配置文件或要在 JMX 文件中引用的其它文件。 例如,如果测试脚本使用 CSV 数据集,则可以上传相应的 .csv 文件。 另请参阅如何从 CSV 文件读取数据。 对于 JMeter 脚本和用户属性以外的文件,如果文件大小大于 50 MB,请压缩文件。 zip 文件的大小应小于 50 MB。 Azure 负载测试会在测试运行期间自动解压缩文件。 只允许使用 5 个 zip 项目,每个 zip 中最多包含 1000 个文件,未压缩的总大小最大为 1 GB。

  6. 选择“查看 + 创建”。 查看所有设置,然后选择“创建”以创建负载测试

可以随时更新测试配置,例如上传不同的 JMX 文件。 在测试列表中选择你的测试,然后选择“编辑”。

运行负载测试

当 Azure 负载测试启动负载测试时,它首先将 JMeter 脚本和任何其他文件部署到测试引擎实例上,然后启动负载测试。

如果选择了“在创建后运行测试”,负载测试将自动启动。 若要手动启动之前创建的负载测试,请执行以下步骤:

  1. 转到你的负载测试资源,在左侧窗格中选择“测试”,然后选择之前创建的测试

    屏幕截图显示了负载测试列表。

  2. 在“测试详细信息”页中,选择“运行”或“运行测试”。 然后,在确认窗格中选择“运行”以启动负载测试。 (可选)提供测试运行说明。

    屏幕截图显示了运行确认页。

    提示

    可以随时从 Azure 门户停止负载测试。

  3. 请注意 Azure 门户中的测试运行详细信息、统计信息和客户端指标。

    如果在测试脚本中有多个请求,图表会显示所有请求,还支持筛选特定请求。

    屏幕截图显示了测试运行仪表板。

    使用运行统计信息和错误信息来确定应用程序在负载下的性能和稳定性问题。

将基于 URL 的负载测试转换为基于 JMeter 的负载测试

如果创建了基于 URL 的负载测试,可以将该测试转换为基于 JMeter 的负载测试。 创建基于 URL 的负载测试时,Azure 负载测试会自动生成 JMeter 脚本。

将基于 URL 的负载测试转换为基于 JMeter 的负载测试:

  1. 转到负载测试资源,选择“测试”以查看测试列表

    请注意“测试类型”列,该列指示测试是基于 URL 还是基于 JMeter

  2. 为基于 URL 的负载测试选择省略号 (...),然后选择“转换为 JMeter 脚本”

    显示 Azure 门户中的测试列表的屏幕截图,其中突出显示了用于将测试转换为基于 JMeter 的测试的菜单选项。

    或者,选择测试,然后在测试详细信息页上选择“转换为 JMeter 脚本”

  3. 在“转换为 JMeter 脚本”页上,选择“转换”,将测试转换为基于 JMeter 的测试

    请注意,测试列表中的测试类型已更改为“JMX”

    显示 Azure 门户中的测试列表的屏幕截图,其中突出显示了已转换测试的测试类型已更改为 JMX。