在Jmeter中使用JSR223预处理器时,会生成2个不同的unix时间戳

时间:2018-06-29 05:38:29

标签: groovy jmeter unix-timestamp

这是Jmeter JSR223预处理器中使用的常规代码:

import java.lang.Long
def long timeStamp=System.currentTimeMillis();
def name=("Report_"+timeStamp);
log.info(name)
vars.put("DocumentName",name);

我需要生成第一个匹配的时间戳(单个)并将其传递给2个不同的事务。但是当我检查jmeter日志时,它有2个不同的时间戳,已传递给2个不同的事务。

我使用SOAPUI工具检查过的内容相同,但是它给了我单个输出。

2 个答案:

答案 0 :(得分:0)

  1. 确保根据Jmeter scoping rules放置预处理器
  2. 如果您将JSR223 Pre processor保持在测试计划级别,它将在每个采样器之前调用,这就是您获得不同值的原因。
  3. 从线程组/测试计划级别中删除预处理器,并将其保留为事务1中第一个采样器的子代,以便预处理器仅执行一次。如下所示。 有关高级JMeter脚本的更多信息,请遵循this link

enter image description here

您可以在结果树中看到正在传递相同的值

enter image description here

答案 1 :(得分:0)

建议避免在可能的情况下将脚本编写为native Java code in any case performs better than any scripting language,在这种情况下,您可以使用JMeter内置的__time() function

实现所需的功能。

JMeter Generate Timestamp time function