Jmeter 每个控制器具有多个线程
我已经创建了一个测试用例,在这个测试用例中,我需要从目录中读取文件,并为每个文件调用HTTP请求。 因此,我创建了一个Bean采样器来列出目录中的文件,并将其放入一个变量中,该变量将由For-each控制器使用。我将HTTP请求保存在每个控制器的内部,以便为每个文件调用HTTP请求。 上述方法就像一根线的冠军。当我更新线程数>1时,我看到一个奇怪的行为,HTTP请求的数量甚至少于线程的数量。 我希望HTTP请求是(线程数*文件数*循环计数) 请告诉我是什么问题 我附上了更好的说明截图Jmeter 每个控制器具有多个线程,jmeter,Jmeter,我已经创建了一个测试用例,在这个测试用例中,我需要从目录中读取文件,并为每个文件调用HTTP请求。 因此,我创建了一个Bean采样器来列出目录中的文件,并将其放入一个变量中,该变量将由For-each控制器使用。我将HTTP请求保存在每个控制器的内部,以便为每个文件调用HTTP请求。 上述方法就像一根线的冠军。当我更新线程数>1时,我看到一个奇怪的行为,HTTP请求的数量甚至少于线程的数量。 我希望HTTP请求是(线程数*文件数*循环计数) 请告诉我是什么问题 我附上了更好的说明截图 Fil
File folder=新文件(“D:\\OIT\u函数\\inputSamples\\files\\large”);
File[]files=folder.listFiles(新文件过滤器(){
公共布尔接受(文件){
返回file.isFile();
}
});
对于(int i=0;i
如果您看到聚合图,可以看到只调用了151个请求,而调用了100个bean采样器
我希望调用[100(线程数)*文件数*循环计数]HTTP请求问题是您违反了3个最佳做法:
在没有看到stdout和jmeter.log文件的情况下,我无法准确地判断出哪里出了问题,但肯定是因为上述几点(如果不是全部的话)请看这里的一个问题。如果可能,还提供(比图片更好的代码片段)。这样我们可以帮助得更好。@GiorgiTsiklauri提供了bean Sampler的代码我对糟糕的设计感到抱歉。我明白我应该读一次文件清单。你能告诉我怎么做吗。我尝试在线程组之前使用Bean处理器。我不习惯groovy,所以不知道如何使用它
File folder = new File("D:\\OIT_FUNCTIONS\\inputSamples\\files\\large");
File[] files = folder.listFiles(new FileFilter() {
public boolean accept(File file) {
return file.isFile();
}
});
for (int i=0; i < files.length; i++) {
vars.put("file_" + i, files[i].getAbsolutePath());
MimetypesFileTypeMap fileTypeMap = new MimetypesFileTypeMap();
String mimeType = fileTypeMap.getContentType(files[i]);
vars.put("mime",mimeType);
}