分布式模式下的JMeter不会根据保存在用户定义变量中的Groovy脚本创建文件夹

时间:2018-01-11 14:08:09

标签: groovy jmeter

我想根据当前日期为结果创建文件夹名称。我用这个值创建了一个变量:

 ${__groovy(new Date().format('yyyy-MM-dd'))}

在测试计划级别的用户定义变量中。

如果我在本地运行测试,它会完美运行 - 创建文件夹(例如2018-01-11)。 但是只要在分布式模式下运行测试,就会创建文件夹,但名称为 ${__groovy(new Date().format('yyyy-MM-dd'))}

任何帮助?

2 个答案:

答案 0 :(得分:0)

"我建议在主节点上运行JMeter测试(将收集所有从属的结果)。如果要根据当前日期创建文件夹,可以使用操作系统shell方法将此文件夹设置为:

  • 在Windows上:

    jmeter -r -n -t test.jmx -l %date:~10,4%_%date:~4,2%_%date:~7,2%\result.jtl
    
  • 在Linux / Unix / MacOSX上

     ./jmeter -r -n -t test.jmx -l `date +%Y-%m-%d`/result.jtl 
    

should not be using any Listeners因为他们没有添加任何值,但会产生不必要的开销,这可能会破坏您的测试。

更多信息:

答案 1 :(得分:0)

解决方案是将值保存到属性中而不是保存到变量中,特别是保存了

props.put("current_date_property", new Date().format('yyyy-MM-dd')); 

进入TestPlan级别的JSR223 PostProcessor。

我仍然不知道为什么它对变量不起作用。但它解决了我的问题。