问:我们在测试接口的时候,特别是需要用到时间戳的时候,我们是怎么处理的呢?
答:用时间戳工具转换。

很自然的我们都能想到用时间戳工具转换,把自己要设定的日期通过工具转换成时间戳,再放到 jmeter 里面调用。如果单独测试功能的时候这样做确实不错,但是如果是在接口自动化的时候呢?还可以这样操作吗?答案当然是不能了,顾名思义,自动化的时候我们人是不用怎么去干预它的运行的,因此我们要用另一个思路来解决这个问题。
这里我提供了两个方法来获取时间戳
1、就是 jmeter 自带的一个函数助手,里面有一个叫_time 的函数

我们要用时间戳时可以获取当前时间的时间戳,公式为:
${__time(,)} : 默认该公式精确到毫秒级别, 13 位数

${__time(/1000,)} : 该公式精确到秒级别, 10 位数

如果参数需要为当前日期,那公式为:

${__time(yyyy-MM-dd,)}

${__time(YMDHMS,)}
执行结果如下:

2、利用 BeanShell,写 java 代码来获取
Java 代码如下:

package bluemoon.bee;

import java.sql.Date;

public class getTime {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    }

    static public long getPlanDate(){
        long date = System.currentTimeMillis();
        return date ;
    }
}

编写好 java 脚本后,到处为可执行 jar 包,然后把这个可执行 jar 包放到 Jmeter 中的 lib/ext 目录下
接着在 jmeter 中添加 BeanShell 组件


添加如下代码:

import bluemoon.bee.getTime;
long planDate = getTime.getPlanDate();

vars.put("planDate",planDate.toString());

然后就可以调用这个 planDate 获取到的时间戳参数了


↙↙↙阅读原文可查看相关链接,并与作者交流