【问题标题】:Read csv value in loop controller Jmeter在循环控制器 Jmeter 中读取 csv 值
【发布时间】:2019-06-05 15:48:15
【问题描述】:

我在线程组中有一个循环控制器来读取一个 csv 文件,我想读取这个 csv 文件中的所有行。 我将我的线程组配置如下:

  • 循环控制器(4 次)
    • 读取 csv 文件(在 EOF 上回收:False,在 EOF 上停止线程:True,共享模式:所有线程)

我用多个线程运行这个场景:2

  • 使用第一个线程,读取 CSV 文件的第一行

  • 使用第二个线程,读取 CSV 文件的第二行

在每个循环之后,我从 CSV 文件中获取的数据没有改变,那么我如何在循环之后读取 csv 的每一行(从第 3 行开始,...)?

【问题讨论】:

  • 您如何验证 jmeter 在第二次循环迭代中没有拾取第 3 行?
  • 我添加了调试采样器来检查每个循环的变量值

标签: loops csv jmeter


【解决方案1】:

您必须将CSV Data Set Config 设置为Loop Controller 的子级。
它应该适用于您指定的 CSV 数据集配置设置。 我创建测试计划:

线程组 线程数 = 2 循环控制器 循环计数 = 4 CSV 数据集配置 文件名:...(您的 csv 文件在这里) 变量名称:数字 分隔符:, EOF 上的回收 = False 在 EOF 上停止线程 = True 共享模式 = 所有线程 JSR223 采样器 log.info(vars.get("number")); // 输出 ${number} 个变量值

每个循环我的“CSV 数据集配置”都会将行读入一个“数字”变量。
JSR223 Sampler 将其值打印到 Log Viewer。

我的 CSV 文件看起来像

1
2
3
4
5

因此,由于 EOF 上的 Recycle 为 FALSE,EOF 上的停止线程为 TRUE,第一个线程在循环中读取 4 行,第二个线程在第 5 行读取一个然后停止。

See the picture

【讨论】:

  • 感谢您的详细评论。让我再看看你的照片
  • 您好 Vadim,您的解决方案是正确的。非常感谢。但是在我的脚本中,我在读取 csv 文件之前有一个 if 控制器,以确保将读取正确的 csv 数据(因为我有很多数据),并且我将 CSV 数据配置作为 IF 控制器的子项。这件事造成了这个问题,当我的脚本运行循环时,它转到 csv 但只读取一行作为我的描述。你对此有什么想法吗?这是我第一次遇到这个问题
  • 好的,我解决了这个问题,因为从 csv 读取的变量在 If 控制器中有作用域,所以我们需要将此值放到另一个 var 中,然后才能在 if 控制器中使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
  • 2011-12-07
  • 1970-01-01
相关资源
最近更新 更多