JMeter - 从目录中读取文件

vam*_*egi 5 jmeter

使用Apache JMeter

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

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

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

Dmi*_*i T 19

  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++;
      }
      
      Run Code Online (Sandbox Code Playgroud)

      它将导致变量设置如下:

      file_1 =/path/to/your/folder/file1.txt file_2 =/path/to/your/folder/file2.txt等

  2. 在 Beanshell Sampler 之后添加ForEach Controller 并按如下方式配置它:

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