JMETER 嵌套 while 循环在 CSV 数据文件的第一行停止

Posted

技术标签:

【中文标题】JMETER 嵌套 while 循环在 CSV 数据文件的第一行停止【英文标题】:JMETER nested while loop is stopping at first line of the CSV data file 【发布时间】:2020-12-17 03:37:40 【问题描述】:

我必须对存储在 CSV 中的 ID 进行 GET 调用,而我必须重试 GET 调用,直到它返回 200 响应代码。 这就是我目前的结构。..

获取线程组

只有一次控制器为每个线程获取身份验证

使用条件 "$__javascript("$index"!="")" 的控制器检查 CSV 的结尾 文件

CSV 数据配置文件(每个文件对每个线程都是唯一的),变量名称为“index”,循环使用 EOF - 假,在 EOF 上停止线程 - 真, 共享模式 - 当前线程

While Controller 条件为 "$__javaScript(parseInt(vars.get("Response_code"))!=201)"

用户定义的变量 - Response_code

Http GET 请求

JSR233 后处理器 - "vars.put("Response_code",prev.getResponseCode());"

JSR223 后处理器 - 将成功调用返回的 ID 写入另一个 CSV 文件

现在我没有收到错误或任何东西.. 但我期待第一个 while 控制器循环遍历每个 id 的 CSV 文件,然后为每个 id 发出 GET 请求,然后第二个 while 循环将等待成功代码,但对于一些原因,GET 调用仅对 csv 中的第一个条目执行,然后退出它。我在这里错过了什么?

【问题讨论】:

【参考方案1】:

CSV 数据配置文件(每个文件对于每个线程都是唯一的)

这不是它的工作方式,CSV 数据集配置被初始化一次,文件名在其execution 时解析,它不会为每个文件加载新的 CSV 文件虚拟用户。

如果您正在寻找在运行时动态提供 CSV 文件名的选项 - 请考虑切换到 __CSVRead() function。更多详情请参阅How to Pick Different CSV Files at JMeter Runtime 文章。

【讨论】:

以上是关于JMETER 嵌套 while 循环在 CSV 数据文件的第一行停止的主要内容,如果未能解决你的问题,请参考以下文章

我要自学-jmeter -CSV文件变量

jmeter 通过CSV Data Set Config控件参数化

JMeter:无法将 CSV 变量复制到另一个变量中

来自 csv 文件的 JMeter 和数据集

jmeter foreach控制器 怎样确认循环到第几次了

满足500人在线的性能测试jmeter怎么设置线程和并发数