使用Apache JMeter
第一个问题:我能够从目录中读取单个文件(包含所有数据)并使用其数据。
但是现在要求每个数据点都有单独的文件,这意味着我必须将许多数据文件放在一个目录中然后读取文件关闭该目录。我有一组数据文件,但我不知道如何读取循环中的每个文件并将其发送给JMeter。
第二个问题:我们在这里讨论的数据是JSON消息,它是缩进的和多行,如何将多行文件读入单输入变量?再次,当JSON消息是一行时我没有问题。
答案 0 :(得分:17)
使用Beanshell Sampler将文件列表转换为JMeter变量:
将以下代码放入Sampler的“脚本”区域:
File folder = new File("/path/to/your/folder");
File[] files = folder.listFiles();
int counter = 1;
for (File file : files) {
vars.put("file_" + counter, file.getAbsolutePath());
counter++;
}
它将导致变量设置为:
file_1 = /路径/到/你的/文件夹/ FILE1.TXT file_2 = /路径/到/你/文件夹/ FILE2.TXT 等
在 Beanshell Sampler之后添加ForEach Controller ,并按如下方式对其进行配置:
file
0
current_file
Add "_" before number
${__FileToString(${current_file},,)}
答案 1 :(得分:0)
如果使用目录列表数据源,则为了循环浏览,应使用$current_file
所在的位置。 __FileToString()
的作用是 Dmitri T 和 alexandrul 上面提到的${__FileToString(${current_file},,)}
。
非常容易查看。