JMeter在运行时更新用户定义的变量

jm2pwxwz  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(232)

我试图从一个线程组更新一个测试计划级别的用户定义变量集。这是我的场景:
测试计划〉用户定义的变量(变量名/值:fBurst=0)测试计划〉线程组1〉一次性控制器〉JSR 223测试计划(在测试计划中,我有以下代码)

log.info("fBurst user defined value : " + ${fBurst})
vars.put("fBurst", Integer.toString(111))
log.info("fBurst user defined value vars.put' : " + ${fBurst})
props.put("fBurst", 222)
log.info("fBurst user defined value props.put' : " + ${fBurst})

我在这里尝试做的是从once only控制器采样器内部更新fBurst用户定义的值,到目前为止还不能使用vars.put或props. put来完成。有没有其他方法可以做到这一点?

6bc51xsx

6bc51xsx1#

请查看JSR223采样器文档:
JSR223测试元素有一个功能(编译),可以显著提高性能。要从该功能中获益,请执行以下操作:

  • 使用脚本文件而不是内联它们。这将使JMeter编译它们(如果ScriptEngine上有此功能)并缓存它们。
  • 或者使用脚本文本并选中缓存编译脚本(如果可用)属性。

使用此功能时,请确保您脚本代码没有直接在脚本代码中使用JMeter变量或JMeter函数调用,因为缓存只会缓存第一个替换请使用脚本参数
因此,请将${fBurst}替换为相应的vars.get('fBurst")props.get('fBurst'),它应按预期开始工作
更多信息:Top 8 JMeter Java Classes You Should Be Using with Groovy

相关问题