JMeter时移问题

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

我一直在使用TimeShift,但似乎TimeShift并没有做我期望它应该做的事情。当我输入一个DateTime到TimeShift中使用它时,它总是使用当前DateTime,但当我只输入日期时,它是否工作?

long timeStamp = ${__timeShift(,,P2D,,)};
${__timeShift(yyyy-MM-dd'T'hh:mm:ss'Z',,P2D,,timeStampFrom)};
log.info("timeStamp: " + timeStamp);
log.info("timeStampFrom: " + ${timeStampFrom});

long timeStampTo = ${__timeShift(,${timeStampFrom},P2H,,)};
log.info("timeStamp: " + timeStampTo);

这个函数名为timeShift,但是为什么不允许它处理我输入的日期时间呢?
谢谢
最新消息:

我一直在使用它...是的,当你在JSR223采样器的头中使用它时,它工作得很好。当你在采样器中使用相同的代码时,它就不...它总是出错,并显示以下消息:

另一项更新:
因此,当在“用户定义的变量:

这是没有任何问题的,但是在Groovy本身中使用它根本不起作用......会出现错误。以采样器的名义使用它也很好用。在我看来,这是jMeter工作方式的一个问题。

rhfm7lfc

rhfm7lfc1#

1.不要将JMeter Functions or Variables内联到Groovy脚本中,也可以使用“参数”部分。
1.在Groovy脚本中使用函数和变量还有一个问题:它们将被编译和缓存,因此如果您使用2次或更多次迭代来运行测试,则只有第一个值将在所有地方使用。
1.添加2小时的正确表达式为PT2H
1.最后但并非最不重要的是,您的代码不是有效的Groovy代码,因此无法编译,您可以自己检查jmeter.log文件,您将看到错误。
假设以上所有情况,我认为您根本不需要任何Groovy脚本,您可以使用JMeter的内置测试元素来完成所有工作,因为函数可以在脚本中的任何地方使用:

有关JMeter函数概念的更多信息:Apache JMeter Functions - An Introduction

相关问题