本文介绍如何使用 Azure 负载测试从 JMeter 中的逗号分隔值 (CSV) 文件中读取数据。 你可以在测试脚本中使用 JMeter
CSV 数据集配置元素
。
使用来自外部 CSV 文件的数据使你的 JMeter 测试脚本可配置。 例如,你可以为客户 CSV 文件中的每个条目调用一个 API。
在本文中,学习如何:
将 JMeter 脚本配置为读取 CSV 文件。
将 CSV 文件添加到负载测试。
(可选)跨所有测试引擎实例均匀拆分 CSV 文件。
具有活动订阅的 Azure 帐户。 如果没有 Azure 订阅,请在开始之前创建一个
免费帐户
。
Azure 负载测试资源。 若要创建负载测试资源,请参阅
创建并运行负载测试
。
Apache JMeter 测试脚本 (JMX)。
(可选)Apache JMeter GUI,用于创作测试脚本。 若要安装 Apache JMeter,请参阅
Apache JMeter 入门
。
本部分,你将配置 Apache JMeter 脚本以引用外部 CSV 文件。 你将使用
CSV 数据集配置元素
读取 CSV 文件中的数据。
Azure 负载测试将 JMX 文件和所有相关文件上传到一个文件夹中。 在 JMeter 脚本中引用外部文件时,请确认你仅使用文件名并删除任何文件路径引用。
使用 Apache JMeter GUI 编辑 JMeter 脚本:
在测试计划中选择 CSV 数据集配置元素。
更新 Filename 信息并删除任何文件路径引用。
(可选)在跨测试引擎拆分 CSV 文件时,请在“变量名称”中输入 CSV 字段名称。
拆分 CSV 文件时,Azure 负载测试不会保留标题行。 在“CSV 数据集配置”元素中提供变量名称,而不使用标题行。
对脚本中的每个“CSV 数据集配置”元素重复上述步骤。
保存 JMeter 脚本并将其添加到
测试计划
中。
使用 Visual Studio Code 或首选编辑器编辑 JMeter 脚本:
在 Visual Studio Code 中打开 JMX 文件。
对于每个
CSVDataSet
:
更新
filename
元素并删除所有文件路径引用。
在
variableNames
中将 CSV 字段名称添加为逗号分隔列表。
<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Search parameters" enabled="true">
<stringProp name="delimiter">,</stringProp>
<stringProp name="fileEncoding">UTF-8</stringProp>
<stringProp name="filename">search-params.csv</stringProp>
<boolProp name="ignoreFirstLine">true</boolProp>
<boolProp name="quotedData">false</boolProp>
<boolProp name="recycle">true</boolProp>
<stringProp name="shareMode">shareMode.all</stringProp>
<boolProp name="stopThread">false</boolProp>
<stringProp name="variableNames">username,query</stringProp>
</CSVDataSet>
保存 JMeter 脚本并将其添加到测试计划中。
将 CSV 文件添加到负载测试
在 JMeter 脚本中引用外部文件时,请将此文件上传到负载测试。 负载启动时,Azure 负载测试会将所有文件复制到每个测试引擎实例上的单个文件夹。
拆分 CSV 文件时,Azure 负载测试不会保留标题行。 在将 CSV 文件添加到负载测试之前,请从该文件中删除标题行。
使用 Azure 门户将 CSV 文件添加到负载测试:
在 Azure 门户中,转到 Azure 负载测试资源。
在左窗格中,选择“测试”以查看测试列表。
若要限制要在列表中显示的测试数,可使用搜索框和“时间范围”筛选器。
通过选中相应复选框来从列表中选择你的测试,然后选择“编辑”。
在“编辑测试”页中,选择“测试计划”选项卡。
从计算机中选择 CSV 文件,然后选择“上传”,将文件上传到 Azure。
选择“应用”以修改测试并在重新运行测试时使用新配置。
如果在 CI/CD 工作流中运行负载测试,可将 CSV 文件添加到测试配置 YAML 文件。 要详细了解如何在 CI/CD 工作流中运行负载测试,请参阅自动回归测试教程。
若要将 CSV 文件添加到负载测试,请执行以下操作:
将 CSV 文件提交到包含 JMX 文件和 YAML 测试配置文件的源代码管理存储库。
在 Visual Studio Code 或首选编辑器中打开 YAML 测试配置文件。
将 CSV 文件添加到 configurationFiles
设置。 可使用通配符或指定多个单独的文件。
testName: MyTest
testPlan: SampleApp.jmx
description: Run a load test for my sample web app
engineInstances: 1
configurationFiles:
- search-params.csv
如果将 CSV 文件存储在单独的文件夹中,请使用相对路径名称指定相应文件。 有关详细信息,请参阅测试配置 YAML 语法。
保存 YAML 配置文件并将其提交到源代码管理存储库。
在 CI/CD 工作流下次运行时,它将使用更新后的配置。
默认情况下,Azure 负载测试会在所有测试引擎实例中复制和处理未经修改的输入文件。 通过 Azure 负载测试,可以在所有引擎实例上均匀地拆分 CSV 输入数据。 如果有多个 CSV 文件,则每个文件将均匀拆分。
例如,如果你有一个大型客户 CSV 输入文件,并且负载测试在 10 个并行测试引擎上运行,那么每个实例将处理 1/10 的客户。
拆分 CSV 文件时,Azure 负载测试不会保留标题行。
将 JMeter 脚本配置为在读取 CSV 文件时使用变量名。
在将 CSV 文件添加到负载测试之前,请从该文件中删除标题行。
要将负载测试配置为拆分输入 CSV 文件,请执行以下操作:
转到负载测试的“测试计划”页。
选择“在测试引擎之间均匀拆分 CSV”。
选择“应用”以确认配置更改。
下次运行测试时,Azure 负载测试会跨测试引擎均匀拆分并处理 CSV 文件。
testName: MyTest
testPlan: SampleApp.jmx
description: Run a load test for my sample web app
engineInstances: 1
configurationFiles:
- customers.csv
splitAllCSVs: True
保存 YAML 配置文件并将其提交到源代码管理存储库。
下次运行测试时,Azure 负载测试会跨测试引擎均匀拆分并处理 CSV 文件。
了解如何设置大规模负载测试。
了解如何配置自动性能测试。
了解如何使用 JMeter 插件。