当前位置: 首页 > 知识库问答 >
问题:

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

顾英发
2023-03-14

我想根据当前日期为我的结果创建一个文件夹名称。我创建了一个具有以下值的变量:

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

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

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

有什么帮助吗?

共有2个答案

阴靖
2023-03-14

解决方案是将值保存到属性中,而不是保存到变量中,具体来说,我保存了

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

测试计划级别的JSR223后处理器。

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

米修平
2023-03-14

“我建议在主节点上运行JMeter测试(这将从所有从节点收集结果)。如果您想创建一个基于当前日期的文件夹,您可以使用您的操作系统外壳方法,以使该文件夹类似于:

> < li>

在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 

您不应该使用任何监听器,因为它们不会增加任何价值,但会产生不必要的开销,这可能会破坏您的测试。

更多信息:

    < li >如何在Linux中使用Date命令 < li>Windows:日期命令参考
 类似资料:
  • 设置:JMeter 4.0,Groovy 2.4.13,3个远程引擎和一个主引擎 我有以下脚本,用于在测试期间将变量保存到文件中: 如何做到这一点,在三台计算机上同时执行时,只在主计算机上保存一次(而不是三次)文件中的列名?

  • 好的,我一直在将结果写入JMeter中的文件夹时遇到问题。 我已经设置了两个变量,一个用于测试的名称,一个用于提交日期。我希望将报告写到用这两个变量命名的文件夹中。 这是变量: 要写入的文件夹的路径如下所示: 当我在主计算机上运行它时,它很好。它会保存到正确的文件和文件夹路径,最终显示如下: 然而,当我在远程机器上运行它时,它会按如下方式保存它: 所以我最终得到了一个名为“${TestRun}${

  • 拉斯宾(杰西)-root@RaspberryPi-腻子 在我输入的终端中 现在我得到了一个包含此代码的脚本 有一个cronjob每小时启动一次这个脚本 苏。一定有什么地方出错了。因为他将变量$finalanswer解读为nothing。 这意味着在此脚本之外定义的变量将不起作用? 我该如何解决这个问题?

  • 问题内容: 我想将“ $ WORSKPACE”变量用于jenkins脚本调用的常规文件。但是在SO上找到的所有解决方案都失败了: 我得到的消息:脚本不允许使用groovy.lang.GroovyObject方法setProperty java.lang.String java.lang.Object(JenkinsHelper.name)。管理员可以决定是批准还是拒绝此签名。 对设置为允许Jenk

  • 对于我的项目,我需要以非交互模式从命令行编写jmeter测试计划,并将结果保存到文件中,然后将其导出到mysql数据库。 知道怎么做吗?

  • 问题内容: 在系统调用中,如果使用打开,系统调用将确保仅在文件不存在时才创建该文件。系统调用保证原子性。有没有类似的方法可以通过bash脚本以原子方式创建文件? 更新:我发现了两种不同的原子方式 使用set -o noclobber。然后,您可以原子地使用>运算符。 只需使用mkdir。Mkdir是原子的 问题答案: 100%纯bash解决方案: 如果不存在名为的文件,则此命令将创建一个名为的文件