我一直在使用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工作方式的一个问题。
1条答案
按热度按时间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