在 JMeter 中递归列出文件夹和子文件夹中的文件

我使用BeanShell SamplerinJMeter列出文件夹中的所有文件。它仅列出目录中的文件,无法在子目录中执行相同操作


File folder = new File("C:\\_private\\Files\\input");


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());

}


qq_花开花谢_0
浏览 233回答 3
3回答

泛舟湖上清波郎朗

移动使用JSR223采样用下面的代码文件实用程序:import org.apache.commons.io.FileUtils;List<File> files = FileUtils.listFiles(new File("C:\\_private\\Files\\input"), null, true);注意替换files.length为files.size():for (int i=0; i < files.size(); i++) {&nbsp; &nbsp; vars.put("file_" + i, files[i].getAbsolutePath());}

翻翻过去那场雪

从 JMeter 3.1 开始,建议对任何形式的脚本编写使用 JSR223 测试元素和 Groovy 语言,主要是因为与其他脚本编写选项相比, Groovy 性能要好得多Groovy 反过来提供File.eachFileRecurse()函数,这正是您要寻找的。示例代码:def index = 1new File('c:/apps/jmeter/bin').eachFileRecurse(groovy.io.FileType.FILES) {&nbsp; &nbsp; vars.put('file_' + index, it.getAbsolutePath())&nbsp; &nbsp; index++}

湖上湖

您需要递归地执行此操作。您可以按照与文件相同的方式列出所有目录,然后递归调用您创建的函数。当您使用初始文件调用该函数时,它将遍历树结构并为您提供列表中的所有文件。要添加到列表中,请使用addAll.def listFiles(File folder) {&nbsp; &nbsp; ... // Recursive function}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java