为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_花开花谢_0 2022-01-06 18:57:06
我使用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());}
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超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++) {

    vars.put("file_" + i, files[i].getAbsolutePath());

}


查看完整回答
反对 回复 2022-01-06
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

从 JMeter 3.1 开始,建议对任何形式的脚本编写使用 JSR223 测试元素和 Groovy 语言,主要是因为与其他脚本编写选项相比, Groovy 性能要好得多


Groovy 反过来提供File.eachFileRecurse()函数,这正是您要寻找的。


示例代码:


def index = 1


new File('c:/apps/jmeter/bin').eachFileRecurse(groovy.io.FileType.FILES) {

    vars.put('file_' + index, it.getAbsolutePath())

    index++

}


查看完整回答
反对 回复 2022-01-06
?
湖上湖

TA贡献2003条经验 获得超2个赞

您需要递归地执行此操作。您可以按照与文件相同的方式列出所有目录,然后递归调用您创建的函数。当您使用初始文件调用该函数时,它将遍历树结构并为您提供列表中的所有文件。要添加到列表中,请使用addAll.


def listFiles(File folder) {

    ... // Recursive function

}


查看完整回答
反对 回复 2022-01-06
  • 3 回答
  • 0 关注
  • 232 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信