每当我从函数助手运行${__timeShift(HH:mm,,PT30M,,)}
时,它都会给我CST(我的本地时区)时间
我有麻烦弄清楚如何使用timshift来评估HH:mm值而不自动将其转换为CST时间。是否有一种简单的方法可以做到这一点,或者我需要使用JSR223进程来计算UTC值和变量。把它作为一个变量?
最终目标是在HTTP采样器中使用这个值。
我已经尝试了https://www.perfmatrix.com/jmeter-timestamp/
中的各种参数组合还在JSR223进程中尝试了一些基本的时间转换。我对Java和JMeter都非常陌生,所以我还没有太大的成功。
您可以使用以下可怕的__groovy()函数来实现这一点:
${__groovy(java.time.ZonedDateTime.now(java.time.ZoneId.of("UTC")).plusMinutes(30).format(java.time.format.DateTimeFormatter.ofPattern("HH:mm")),)}
更多信息:JMeter的Groovy模板备忘单
答案是设置默认时区:
TimeZone.setDefault(TimeZone.getTimeZone('UTC'))
def theTime = ${__timeShift("HH:mm",,PT30M,,)}