我正在寻找如何在JMeter中从文件中获取随机行的方法。 我会很感激任何建议。
答案 0 :(得分:2)
不确定groovy,也许有一种更简单的方法,但是例如你可以使用以下代码Beanshell Sampler来完成:
import org.apache.commons.io.FileUtils; //necessary import
List lines = FileUtils.readLines(new File("/path/to/your/file")); // read file into lines array
int random = new Random().nextInt(lines.size()); // get random line number
String randomLine = lines.get(random); // get random line
vars.put("randomLine", randomLine); // store the random line into ${randomLine} variable
/path/to/your/file
替换为您希望随机行来自${randomLine}
的方式访问随机行有关在JMeter测试中使用Beanshell测试元素中的JMeter和Java API的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component指南
N.B。上面的代码也是有效的groovy代码
答案 1 :(得分:0)
这应该可以使用bean shell控制器。在这里,您需要进行一些编程才能实现所需的行为。
有一种简单的方法可以达到预期的效果。 在您的线程组中引入赎金计时器。 计时器将确保线程的随机性。 配置CSV confit元素以从文件中读取数据。 确保文件与所有线程共享。
答案 2 :(得分:0)
您可以获得随机变量
random__Random(1,9)
//syntax: __Random(start,end)
然后你可以退出
File fileInstance = new File("path/yourfile.txt");
readerInstance = new IndexedFileReader(fileInstance);
lines = readerInstance.readLines(randomIdx, randomIdx+1);
readLines采用起始行和结束行号..
但是如果你正在使用其他非常小的文件,迭代次数很少我真的建议你把整个文件读入一个缓冲区,然后用随机变量从那里拉出行
答案 3 :(得分:0)
您还可以使用Blazemeter的Random CSV Data Set Config Plugin Jmeter插件。在常规的JMeters CSV数据集配置之上,它具有普通用户想要的所有随机化功能。