在JMeter的JSR223采样器中生成随机值

时间:2018-11-04 12:06:34

标签: random groovy jmeter jsr223

def index = [];
def randoms = [];
def size = new File("C:/Users/320027671/Desktop/JmeterPerformanceSuit/CompleteSuit/STU3/Post/index.csv").readLines().size();
File file = new File("C:/Users/320027671/Desktop/JmeterPerformanceSuit/CompleteSuit/STU3/Post/index.csv");
file.each { line ->
	index << line
	randoms << __Random(0,size,)
}

脚本给出错误

  

该方法不存在

脚本正在工作直到索引<<行,问题出在随机函数上

2 个答案:

答案 0 :(得分:0)

我假设您使用Groovy作为语言(否则它将无法正常工作)

您不能使用JMeter functions inside JSR223

您可以使用例如RandomUtils来随机化每一行:

org.apache.commons.lang3.RandomUtils.nextInt(0, size-1); 

答案 1 :(得分:0)

您的方法可能无法产生“随机”数字,尤其是在较小的文件大小上,您可以在randoms列表中获得重复值,因此我建议您执行以下操作:

1.upto(size, { i ->
    randoms.add(i)
})

Collections.shuffle(randoms)

这将使用从1到randoms长度的数字填充size列表,然后调用Collection.shuffle()函数以“随机化”列表。

以防万一,请查看Writing JMeter Functions in Groovy以获取更多见解。