在JMeter中获取,设置和修改时间戳

时间:2018-02-15 20:37:03

标签: javascript java groovy jmeter beanshell

在JMeter中,我有一个变量,

current_time = ${__time()}   

在用户定义的变量中。

我的目标是通过HTTP请求传递比当前时间晚24小时的时间。

我可以使用

切断当前时间的毫秒数
current_epoch_time = ${__groovy(vars.get("current_time").substring(0\,10))}

然而,我遇到了(1)试图转换" current_epoch_time"到一个整数和(2)从它减去24小时。

我仍然非常喜欢使用JMeter和新手一般使用groovy。

2 个答案:

答案 0 :(得分:0)

如果你已经在使用groovy(或任何其他编程语言),你不需要变量或${__time()}函数,你可以

${__groovy(System.currentTimeMillis()-24*60*60*1000)}

${__groovy(System.currentTimeMillis()-8400000)}

如果您想要更具体,可以使用System.nanoTime()

使用变量的唯一原因是,如果您希望所有使用它的地方的值都相同,那么您可以将其添加到用户定义的变量中

Name: yourname
Value `${__groovy(System.currentTimeMillis()-8400000)}`

然后将其用作${yourname}

如果你仍想在脚本中减去它,那么这应该有效:

 ${__groovy(try {Long.parseLong(vars.get("current_time"))-8400000} catch(Exception e){})}

答案 1 :(得分:0)

由于JMeter version 3.3您具有__timeShift()功能,允许在当前或特定日期添加/减少任意数量的时间段。

因此,如果您需要从当前时间戳减去24小时,则相关的__timeShift()函数配置将类似于:

${__timeShift(,,-P1D,,)}