【发布时间】:2017-11-08 18:08:52
【问题描述】:
我在测试计划中有多个 http 样本,但我想根据 csv 数据集配置多次运行一个请求,并且一旦特定样本完成所有基于 csv 数据集配置的迭代,剩余的 http 请求将运行。
在上图中,我有 5 个 http 样本,并且我为第一个请求设置了 csv 数据集,一旦对整个 csv 数据集测试数据运行第一个请求,则应该运行另一个样本,请提供解决方案如何执行此类在 jmeter 中操作。
【问题讨论】:
我在测试计划中有多个 http 样本,但我想根据 csv 数据集配置多次运行一个请求,并且一旦特定样本完成所有基于 csv 数据集配置的迭代,剩余的 http 请求将运行。
在上图中,我有 5 个 http 样本,并且我为第一个请求设置了 csv 数据集,一旦对整个 csv 数据集测试数据运行第一个请求,则应该运行另一个样本,请提供解决方案如何执行此类在 jmeter 中操作。
【问题讨论】:
您可以使用循环控制并提供所需的点击次数。
【讨论】:
根据问题,需要执行一个特定的请求来循环执行。可以按以下方式组织循环。
-> Thread Group
-> Loop Controller
-->Particular Request
-> Other Request
CSV 数据集可以在配置元素中找到,并且应该包含指向带有数据的特定文件的路径(例如,accounts.csv)。
这两个元素都可以位于 回路控制器:添加 -> 逻辑控制器 -> 回路控制器 CSV 数据集:添加 -> 配置元素 -> CSV 数据集配置。
如果满足以下条件,则循环可以针对文件中的确切记录数量运行 循环计数等于 accounts.csv 中的字符串数 永远可以通过 Test Duration 自动停止,也可以通过 Stop 按钮停止。
CSV 数据集配置应具有指向包含数据的文件的路径。 如果文件包含标题,则将根据第一个字符串中的列名分配变量,否则,必须在配置中提供变量名。
回答:如果您使用 9 个变量并且所有变量都设置为文件中的标题名称,则不要在 CSV 数据集配置中提供它们。它们将自动创建,因此您可以通过文件中的名称使用所有 9 个变量。 如果未提供标题,请在变量名称字段中设置 9 all,使用逗号作为分隔符。
【讨论】:
配置您的CSV Data Set Config 喜欢:
foo
false
false
${__javaScript("${foo}" != "<EOF>",)} 放入“条件”输入中"${foo}" != "<EOF>" 放入“条件”输入中将您的第一个请求作为 If 控制器的子级
将foo 替换为脚本中您实际的JMeter 变量引用名称。
这样,JMeter 将循环直到 CSV 文件中有条目,并在到达 CSV 文件末尾时继续处理剩余的请求。
请参阅Using the While Controller in JMeter 文章的从 CSV 读取所有值并继续一章,了解有关为您的场景配置 JMeter 的更多详细信息。
【讨论】:
您可以仅使用一个变量和您在 If 和 while 控制器中不需要的 Rest 变量进行验证。
【讨论】: