Email Jmeter邮件阅读器采样器“;文件";如何从文件夹中读取邮件文件(.msg)的协议

Email Jmeter邮件阅读器采样器“;文件";如何从文件夹中读取邮件文件(.msg)的协议,email,csv,jmeter,Email,Csv,Jmeter,我的文件夹中有outlook邮件文件(.msg)。我想让邮件阅读器采样器从文件夹中读取这些邮件 我可以复制文件路径并使用csv读取这些邮件,但邮件id是动态的,因此文件名会更改,因此每次我都必须复制文件路径,以便邮件采样器读取这些邮件。。。是否有其他方法可以动态读取这些消息 我的测试计划 邮件阅读器采样器: 协议:文件 服务器:C:\temp\apachejmeter\ ApacheJMeter文件夹包含my.msg文件 当我运行我的测试时,我得到了响应0消息found.因此您需要首先填充.ms

我的文件夹中有outlook邮件文件(.msg)。我想让邮件阅读器采样器从文件夹中读取这些邮件

我可以复制文件路径并使用csv读取这些邮件,但邮件id是动态的,因此文件名会更改,因此每次我都必须复制文件路径,以便邮件采样器读取这些邮件。。。是否有其他方法可以动态读取这些消息

我的测试计划

邮件阅读器采样器: 协议:文件 服务器:C:\temp\apachejmeter\

ApacheJMeter文件夹包含my.msg文件


当我运行我的测试时,我得到了响应0消息found.

因此您需要首先填充.msg文件列表(可以是动态的)并将它们发送到服务器

  • 获取要发送的文件列表并将其存储到JMeter变量中
  • 将保存文件路径的JMeter变量传递给SMTP采样器
  • 关于第1点,我建议通过脚本获取文件列表

    假设以下测试计划结构:

    • 添加线程组(所有默认值)
    • 添加一个Beanshell采样器作为线程组的子级
    • 在“脚本”区域中添加以下代码:

      File folder = new File("c:/temp/JMeter");
      File [] files2send = folder.listFiles();
      
      int counter = 1;
      
      for (File file : files2send) {
          if (file.getName().endsWith(".msg")){           
      
          vars.put("FILE_" + counter, file.getPath());
          counter++;
          }
      }
      
    这将保存文件,您将作为JMeter变量发送,如:

    FILE_1=c:\temp\JMeter\something.msg
    FILE_2=c:\temp\JMeter\somethingmore.msg
    FILE_3=c:\temp\JMeter\somethingelse.msg
    
    您可能希望查看指南,以获得关于Beanshell测试元素的更详细解释和一种烹饪书

    之后,您可以使用来迭代文件并将其添加到您的请求中

    将每个控制器添加为线程组的子级(与Beanshell采样器的级别相同

    确保每个控制器具有以下配置:

  • 输入变量前缀:
    文件
  • 输出变量名称:
    CURRENTFILE
  • 在编号被选中之前添加
  • 将SMTP采样器添加为每个控制器的子项


    在HTTP请求的“附加文件”小节中,访问您想作为
    ${CURRENTFILE}
    发送的文件

    我感谢您的响应,但我想从文件夹中读取msg文件(是动态的)。我正在使用邮件阅读器采样器完成此工作。我不想发送邮件。如果我的问题使您困惑,请原谅。