在 Jmeter 中使用 JSR223 预处理器时会生成 2 个不同的 unix 时间戳
2 different unix time stamp is generated when JSR223 Pre Processor is used in Jmeter
这是 Jmeter JSR223 预处理器中使用的 groovy 代码:
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 工具检查过,但它给了我单一输出。
- 确保根据Jmeter放置预处理器scoping rules
- 如果您将 JSR223 Pre processor 保持在测试计划级别,它将在每个采样器之前调用,这就是您获得不同值的原因..
- 从线程组/测试计划级别删除预处理器并将其保留为事务 1 中第一个采样器的子级。以便预处理器仅执行一次。如下所示。
有关高级 JMeter 脚本的更多信息,请关注 this link
您可以在结果树中看到正在传递相同的值
建议尽可能避免使用脚本 native Java code in any case performs better than any scripting language, in your case you can achieve what you need using JMeter's built-in __time() function
这是 Jmeter JSR223 预处理器中使用的 groovy 代码:
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 工具检查过,但它给了我单一输出。
- 确保根据Jmeter放置预处理器scoping rules
- 如果您将 JSR223 Pre processor 保持在测试计划级别,它将在每个采样器之前调用,这就是您获得不同值的原因..
- 从线程组/测试计划级别删除预处理器并将其保留为事务 1 中第一个采样器的子级。以便预处理器仅执行一次。如下所示。 有关高级 JMeter 脚本的更多信息,请关注 this link
您可以在结果树中看到正在传递相同的值
建议尽可能避免使用脚本 native Java code in any case performs better than any scripting language, in your case you can achieve what you need using JMeter's built-in __time() function