你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
了解如何在 Azure 门户中使用 Locust 测试脚本和 Azure 负载测试创建和运行负载测试。 Azure 负载测试是一项托管服务,可用于在云规模上运行负载测试。 Locust 是一种开源负载测试工具,使你能够使用 Python 代码描述所有测试。
先决条件
具有活动订阅的 Azure 帐户。 免费创建帐户。
Locust 测试脚本。 如果没有测试脚本,请从 Locust 文档中的 Locust 快速入门开始。
使用现有 Locust 测试脚本创建负载测试的用例:
- 你想要重复使用现有的 Locust 脚本来测试应用程序。
- 你希望模拟用户到应用程序的流量,并确保应用程序满足你的要求。
- 你不想为负载测试设置复杂的基础结构。 而且,作为开发人员,你可能不熟悉负载测试工具和测试脚本语法。
在本快速入门中,你将使用 Azure 负载测试和 Locust 测试框架为应用程序终结点创建负载测试。 在 Azure 门户中创建负载测试资源,然后通过上传 Locust 测试脚本并配置负载参数来创建负载测试。
重要
Azure 负载测试中对 Locust 的支持目前为受限预览版。 有关 beta 版、预览版或尚未正式发布的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款。 可在此处注册以加入 Azure 订阅获取预览版。
创建 Azure 负载测试资源
首先,需要为 Azure 负载测试创建顶级资源。 Azure 门户提供一个集中位置用于查看和管理测试计划、测试结果和相关项目。
如果已有负载测试资源,请跳过本部分并继续创建负载测试。
要创建负载测试资源,请执行以下操作:
使用 Azure 订阅的凭据登录到 Azure 门户。
在 Azure 门户菜单上或在门户主页中,选择“创建资源”。
在“市场”页上,搜索并选择“Azure 负载测试”。
在“Azure 负载测试 窗格”中选择“创建”。
在“创建负载测试资源”页上输入以下信息:
字段 说明 订阅 选择要用于此 Azure 负载测试资源的 Azure 订阅。 资源组 选择现有资源组。 或者选择“新建”,然后为新资源组输入唯一名称。 名称 输入唯一名称用于标识你的 Azure 负载测试资源。
该名称不能包含特殊字符,例如 \/""[]:|<>+=;,?*@&, 或空格。 该名称不能以下划线 (_) 开头,并且不能以句点 (.) 或 破折号 (-) 结尾。 长度必须为 1 到 64 个字符。位置 选择一个地理位置用于托管你的 Azure 负载测试资源。
此位置还决定了测试引擎的托管位置,以及测试框架请求的来源。注意
(可选)可以在“标记”选项卡上配置更多详细信息。标记是名称/值对,通过将相同的标记应用到多个资源和资源组,可以对资源进行分类并查看合并的计费。
完成资源配置后,选择“查看 + 创建”。
查看提供的设置,然后选择“创建”。 创建帐户需要几分钟时间。 等待门户页显示“部署已完成”后再继续。
若要查看新资源,请选择“转到资源”。
还可以管理对 Azure 负载测试资源的访问(可选)。
Azure 负载测试使用基于角色的访问控制 (RBAC) 管理针对资源的权限。 如果遇到此消息,则表明你的帐户没有管理测试所需的权限。
创建负载测试
拥有负载测试资源后,现在可以通过上传 Locust 测试脚本来创建负载测试。 Azure 负载测试将管理基础结构,以大规模运行测试脚本,并模拟发送到应用程序终结点的流量。
若要在 Azure 门户中为基于 Locust 的测试创建负载测试,请执行以下操作:
在 Azure 门户中,转到 Azure 负载测试资源。
在左侧导航中,选择“测试”以查看所有测试。
选择“+ 创建”,然后选择“上传脚本”。
在“基本信息”选项卡中输入负载测试详细信息:
字段 说明 测试名称 输入唯一的测试名称。 测试说明 (可选)输入负载测试说明。 创建后运行测试 选择此设置可在保存负载测试后自动启动负载测试。 在“测试计划”选项卡上,选择“Locust”作为“负载测试框架”。
下一步,从计算机中选择 Locust 测试脚本,然后选择“上传”,将文件上传到 Azure。
上传在测试脚本中引用的任何其他文件。 例如,如果测试脚本使用 CSV 数据集,则可以上传相应的 .csv 文件。 若要将配置文件与 Locust 脚本配合使用,请上传该文件,然后为“文件相关性”选择“Locust 配置”
要从“requirements.txt”文件安装任何依赖项,请上传“requirements.txt”文件以及其他工件。 在 Locust 脚本中添加此代码以安装依赖项
import subprocess subprocess.check_output("python3 -m pip install -r requirements.txt", shell=True)
要将支持性 Python 文件与 Locust 一起使用,请创建支持性 Python 文件的 wheel (.whl) 文件,并将该 wheel 文件与其他工件一起上传。 在 Locust 脚本中添加此代码,以在 Locust 启动时安装 wheel 文件
import subprocess subprocess.check_output("python3 -m pip install your_wheel.whl", shell=True)
注意
在 Locust 脚本的导入部分中包括用于安装依赖项和支持性文件的代码片段。 不要在负载测试部分中包括这些内容。
在“负载”选项卡上,输入要生成的负载量的详细信息:
字段 说明 测试引擎实例 选择并行测试引擎实例的数量。 每个测试引擎模拟“用户数”的流量。 用户数 输入每个测试引擎实例要模拟的虚拟用户数。 持续时间(分钟) 负载测试的总持续时间(以分钟为单位)。 用户生成率 (可选)添加用户的速率(每秒用户数)。 主机终结点 (可选)HTTP 终结点 URL。 例如 https://www.contoso.com/products.| 选择“查看 + 创建”。 查看所有设置,然后选择“创建”以创建负载测试。
可以随时更新测试配置,例如上传其他 Locust 测试文件,或修改负载参数。 在测试列表中选择你的测试,然后选择“编辑”。
运行负载测试
如果选择了“在创建后运行测试”,负载测试将自动启动。 若要手动启动之前创建的负载测试,请执行以下步骤:
转到你的负载测试资源,在左侧窗格中选择“测试”,然后选择之前创建的测试。
在“测试详细信息”页中,选择“运行”或“运行测试”。 然后,在确认窗格中选择“运行”以启动负载测试。 (可选)提供测试运行说明。
提示
可以随时从 Azure 门户停止负载测试。
请注意 Azure 门户中的测试运行详细信息、统计信息和客户端指标。
如果在测试脚本中有多个请求,图表将显示所有请求,还可以筛选特定请求。 在“采样器统计信息”部分中,可以按表格格式查看每个请求的统计信息。
使用运行统计信息和错误信息来确定应用程序在负载下的性能和稳定性问题。
总结
在本快速入门中,你已使用 Locust 测试脚本创建并运行了 Azure 负载测试的负载测试。 Azure 负载测试抽象化了设置基础结构以模拟应用程序大规模用户负载的复杂性。
可以进一步扩展负载测试,以监视负载下应用程序的服务器端指标,并指定测试失败指标,以在应用程序不满足要求时收到警报。 为了确保应用程序继续运行良好,还可以将负载测试作为持续集成和持续部署 (CI/CD) 工作流的一部分进行集成。
相关内容
- 了解如何监视应用程序的服务器端指标。
- 了解如何使用环境变量将负载测试参数化。