groovy 是一个由vars创建的变量,把一个常量变量?

13z8s7eq  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(103)

我想通过分配时间戳来创建一个名为“ID”的变量,但问题是当我设置一个新值时,它不起作用。在每次迭代中,似乎无论我重新创建多少次“ID”,它总是引用第一个。这是否意味着由vars.put创建的变量是常量变量?或者它只是与User Defined Variable相同的概念?
Create "ID" with vars.put
First iteration
Second iteration

ltqd579y

ltqd579y1#

查看JSR223 Sampler文档:
JSR223测试元素有一个功能(编译),可以显著提高性能。要使用此功能:

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

使用此功能时,请确保脚本代码不直接在脚本代码中使用JMeter变量或JMeter函数调用,因为**缓存只会缓存第一个替换。**请使用脚本参数。
因此,要么将__time()函数移到“参数”部分,并将代码更改为

vars.put('ID', Parameters)

或者使用纯Groovy来获取当前时间戳:

vars.put('ID', System.currentTimeMillis() as String)

有关JMeter中Groovy脚本的更多信息:Apache Groovy: What Is Groovy Used For?

相关问题