当使用CSV数据集配置时,强制线程使用相同的输入行



我正在尝试构建一个Jmeter测试计划,该计划可以对服务器进行http调用。线程组中的每个线程将从CSV文件中读取2个参数,并使用这些参数进行http调用,然后使用相同的参数继续进行相同的调用1000次,每个线程执行之间的延迟为10秒。

http调用看起来像

/服务/方法?param1=${param1}&param2=${param2}

CSV是这样的:

1,23,45,67,8

我已经制定了测试计划,除单个问题外,该计划在大多数情况下都有效。我希望每个线程在执行时都使用相同的参数(相同的输入行)。目前唯一的方法是设置Recycle on EOF = true,但线程会随机选择值。Param1和Param2可以是随机生成的值,只要它们在整个执行过程中与同一线程保持一致即可。

我能做到这一点吗?

谢谢!

我真的不确定我是否理解你的问题(你可以更明确地描述它或使用示例),但下面的模式应该实现你的测试计划描述:

      测试计划
      线程组线程数:N。While控制器条件:${__javaScript("${param2"!="<EOF>",)}-读取csv文件,直到EOFCSV数据集配置文件名:[包含测试数据的文件的路径]变量名:param1,param2EOF回收?错误是否停止EOF上的线程?正确共享模式:当前线程组回路控制器循环计数=1000-每个线程的循环数,具有相同的参数HTTP请求-您的HTTP调用测试操作目标=当前线程动作=暂停持续时间(ms)=10000-呼叫之间的暂停

如果您需要N个线程中的每一个从csv文件中读取并使用单个且唯一的行,则必须为csv数据集配置设置Sharing mode: Current thread group(在这种情况下,csv条目的数量应与线程数量相同,否则应设置Recycle on EOF? False
如果您需要N个线程中的每一个读取并使用csv文件中的所有行,则必须为csv数据集配置设置Sharing mode: Current thread

如果这不是你想要的,请更清楚地描述你的问题。

我找到了一种破解方法。基本上,我只是为每个线程设置一个常量计时器,并使用线程号${__threadNum}作为参数,以满足我对同一线程使用相同参数的约束。

我仍然更喜欢从csv文件中读取params的方法。

最新更新