如何用jmeter动态读取多个csv文件

时间:2017-08-03 08:39:13

标签: java jmeter

我尝试使用Jmeter

从特定文件夹中读取多个csv文件

到现在为止,我读了一个csv文件,当X-是文件中的行数时,我可以用一个运行X次的线程循环它。 我在使用bean_shell的线程之前计算了csv文件中的行数:

    import org.apache.jmeter.services.FileServer;
String DirPath = FileServer.getFileServer().getBaseDir();
FileReader fileReader = new FileReader(new File(DirPath + "/files/App1.csv"));
LineNumberReader lineReader = new LineNumberReader(fileReader);
int linenumber = 0;
while (lineReader.readLine() != null){
linenumber++;
}
props.put("rowsnumberApp", Integer.toString(linenumber));

现在,当文件夹中的文件数量可以动态更改时,我想从文件夹中读取多个文件,

文件名将是这样的:

APP1

APP2

APP3

...应用

我有这段代码来读取文件夹中的所有文件:

import org.apache.jmeter.services.FileServer;
String DirPath = FileServer.getFileServer().getBaseDir();
File folder = new File(DirPath + "/files");
File[] files = folder.listFiles();
int counter = 1;
for (File file : files) {
    vars.put("file_" + counter, file.getAbsolutePath());
    counter++;
}

每个文件都有不同的行数(但至少我对所有文件都有相同的soap请求)

我意识到在csv上使用循环控制器只能给出第一行。

正如您所看到的,我已经拥有了从文件夹中读取文件并计算行数的代码部分,

我只需要一种方法来连接所有这些,以便能够循环文件夹中的所有csv文件

所以任何想法?

2 个答案:

答案 0 :(得分:0)

使用2个循环,首先保存多少个文件:

vars.put("fileLength", files.length);

使用$ {fileLength}作为循环计数

创建第一个循环

添加计数器以0开始最大$ {fileLength}增量1参考名称cnt

内部循环读取为您的第一个beanshell更改为使用计数器

FileReader fileReader = new FileReader(new File(DirPath + "/files/file_" + vars.get("cnt")));

使用计数器更新您当前的实施:

import org.apache.jmeter.services.FileServer;
String currentFileIndex = vars.get("cnt");
String DirPath = FileServer.getFileServer().getBaseDir();
FileReader fileReader = new FileReader(new File(DirPath + "/files/file_" + currentFileIndex ));
LineNumberReader lineReader = new LineNumberReader(fileReader);
int linenumber = 0;
while (lineReader.readLine() != null){
linenumber++;
}
props.put("rowsnumberApp" + currentFileIndex , Integer.toString(linenumber));

答案 1 :(得分:0)

Directory Listing Config插件是最简单的选择

Directory Listing Config Example

通过这种方式,您将获得一个JMeter变量,您可以在CSV Data Set Config中使用该变量来参数化您的API调用

有关详细信息,请参阅Introducing the Directory Listing Config Plugin on JMeter

您可以使用JMeter Plugins Manager

安装目录列表配置插件

JMeter Directory Listing Config