如何使用<timeinmillsec> + imagefilename在jmeter中上传图像文件

时间:2016-01-05 14:27:23

标签: performance jmeter performance-testing

某些文件夹路径包含如下图像列表:

m405set1.jpg
m405set2.jpg
m405set3.jpg
m405set4.jpg
m405set5.jpg

我的要求是我想以下列格式读取第一个文件名上传图像文件:

<gettimeinmilliseconds>+imagename.jpg example 1451989954976m405set1.jpg

我如何能够实现这一目标,请帮助我

1 个答案:

答案 0 :(得分:0)

如果只需要将当前时间戳添加到文件名,则可以使用__time()函数作为file参数的前缀。如果没有参数,该函数将返回自Unix epoch以来的当前时间(以毫秒为单位)。

如果您需要在上传之前更改文件名,则更棘手但仍然可行。

  1. 添加Beanshell PreProcessor作为执行上传的请求的子项
  2. 将以下代码放入预处理器&#34;脚本&#34;面积:

    import org.apache.commons.io.FileUtils;
    
    String newFileName = System.currentTimeMillis() + vars.get("oldFileName");
    FileUtils.copyFile(new File("test.txt"),new File(newFileName));
    vars.put("newFileName",newFileName);
    

    它会将当前时间戳附加到${oldFileName}变量中指定的文件(它可能来自ie CSV Data Set config并将结果值存储到${newFileName}变量中,您可以在实际上传请求中使用该变量

  3. 您可以选择添加一个步骤来清理生成的临时文件,以防您在请求后不需要它。为此,请使用以下代码添加Beanshell PostProcessor

    String filename = vars.get("newFileName");
    new File(filename).delete();
    
  4. 澄清:

    • FileUtils是来自Apache Commons IO库的类,它简化了文件操作
    • vars - 是JMeterVariables实例的简写,它提供对所有JMeter变量的读/写访问权

    有关在JMeter测试中使用Beanshell脚本的全面信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component文章。