在我的JMeter测试计划中,其中一个JDBC采样器返回多个名为clusterCode
的值。现在我想在下一个JDBC请求中使用这些值,如select userID from users where clusterCode in ('foo1','foo2','foo3');
。
目前我在JMeter的ForEach控制器中使用JSR223 sampler
将所有clusterCodes
附加到字符串。它工作正常。但是使用这种方法,JSR223采样器请求数的数量非常高,而且用户数量也增加了很多时间。有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
找到解决方案。我曾尝试使用JSR223 post-processor
,但我的实施是错误的。我现在已经开始工作了。以下是代码:
var strClusterCodes1= "'" + vars.get("clusterCodes_1") + "',";
var msglength = vars.get("clusterCodes_#");
for (var position = 0; position < msglength; position++) {
strClusterCodes1 += "'" + vars.get("clusterCodes_" + msglength) + "',";
}
strClusterCodes1 =strClusterCodes1.substring(0,strClusterCodes1.lastIndexOf(","))
vars.put("strClusterCodes",strClusterCodes1);
因此,我发现数组中的元素数量为clusterCodes_#
,并将带有for循环的数组的所有元素追加到字符串中。我的工作由一个JSR223 post-processor
完成。