JMeter CSV 数据集拆分成线程(用户)

JMeter CSV data set split into threads (users)

我想做的事情:

我想为 50 个用户测试系统的行为。每个用户必须执行相同的操作 X 次, 使用不同的输入( X - 取决于我在 CSV 文件中有多少条记录,所以如果文件包含 1000 条记录,每个用户将执行该操作 20 次)。

我实际上做了什么:

我设置了 CSV 数据集配置(使用 1000 行的 CSV 文件)并将线程数设置为 50

我的问题是什么:

现在我不太确定如何共享 CSV 文件,以便所有用户都可以对文件中的行进行唯一轮询。 (因此每个用户都将拥有来自 CSV 的独特行)

我该如何解决:

我可以复制线程组来制作 50 个线程组,然后将它们添加到单独的 CSV 文件中,但这听起来很荒谬...

在线程属性下的线程组中,我们可以设置

number of threads = 50
ramp up period = 1
loop count = 20

因此,这里的每个线程在一秒后将从 csv 文件中获取下一行并执行它。 这样同一个csv文件将在不同的线程之间共享。

我建议为您的测试计划创建多个 CSV 文件,并相应地分配变量以顺利执行脚本。使用相同的 CSV 文件无法解决问题,因为有时很少有线程执行得更快,而其他线程执行得较慢,在这种情况下,操作将开始在不同线程之间复制。

鉴于您在 CSV Data Set Config

中设置了以下值
  • 回收 EOF:False
  • 在 EOF 处停止线程:True
  • 分享模式:All threads

然后每个线程(虚拟用户)将从 CSV 文件中获取新值,这将保证测试数据的唯一性

您可以使用 __threadNum() function and ${__jm__Thread Group__idx}; variable

自行检查

更多信息:CSV Data Set Config in Sharing Mode - Made Easy