JMeter - 从目录中读取文件

时间:2015-09-01 00:17:31

标签: jmeter

使用Apache JMeter

第一个问题:我能够从目录中读取单个文件(包含所有数据)并使用其数据。

但是现在要求每个数据点都有单独的文件,这意味着我必须将许多数据文件放在一个目录中然后读取文件关闭该目录。我有一组数据文件,但我不知道如何读取循环中的每个文件并将其发送给JMeter。

第二个问题:我们在这里讨论的数据是JSON消息,它是缩进的和多行,如何将多行文件读入单输入变量?再次,当JSON消息是一行时我没有问题。

2 个答案:

答案 0 :(得分:17)

  1. 使用Beanshell Sampler将文件列表转换为JMeter变量:

    • 在测试计划中添加Beanshell Sampler
    • 将以下代码放入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 等

  2. 在 Beanshell Sampler之后添加ForEach Controller ,并按如下方式对其进行配置:

    • 输入变量前缀:file
    • 启动循环索引:0
    • 循环结束索引:留空
    • 输出变量名称:任何有意义的内容,即current_file
    • 检查Add "_" before number
  3. 将您的主采样器作为ForEach控制器的子项。如果需要,使用__FileToString()函数${__FileToString(${current_file},,)}
  4. 来处理每个文件内容

答案 1 :(得分:0)

如果使用目录列表数据源,则为了循环浏览,应使用$current_file所在的位置。 __FileToString()的作用是 Dmitri T alexandrul 上面提到的${__FileToString(${current_file},,)}

非常容易查看。