一、缘由
今天测试的时候因为业务的测试需要通过jmeter进行接口请求制造不同日期的数据,其中一个参数就是提供不同时间点的时间戳。虽然jmeter有内置的函数__time(,)来获取当前的时间戳,不太满足我的需求。但是我的要求是获取指定日期时间点的时间戳。刚开始的时候,都是去网上去找一些在线的工具去转换得到时间戳后才粘贴到jmeter,觉得这个有点费时间。突然想到jmeter支持java代码编写,支持jar导入,那么我干嘛不自己制作一个jar导入jmeter来获取我对于的日期的时间戳呢?对吧?那么怎么来制作一个jar包呢?请继续往下看!!
二、制作jar的步骤
一、先写一个java类-Timestamp.java代码如下:
代码语言:javascript复制package timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Timestamp {
public static String getTimestamp(String timeStr) {
String timestamp = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = sdf.parse(timeStr);
timestamp = String.valueOf(date.getTime());
} catch (Exception ep) {
ep.printStackTrace();
}
return timestamp;
}
}
二、对java文件进行编译同时打包成jar包
1、首先进入Timestamp.java文件所在目录,用javac命令对java文件进行编译,如下:
编译完成后,当前目录下会生成一个字节码文件Timestamp.class,如下:
2、通过jar命令将timestamp.class 文件打包成jar包,我把整个包打包,如下:
运行jar命令后,当前目录下会生成一个jar包,如下:
3、用压缩软件打开jar包,找到META-INF下的清单文件MAINIFEST.MF,如下:
4、用记事本打开加上属性值Main-Class,如下:
Main-Class冒号后面需要空格和最后需要留一行空行。
到此为止jar制作完成,那么怎么在jmeter里面应用呢?请继续看下去哦!!
三、jar包在jmeter的应用
1、在jmeter新建一个线程组,且在线程组把刚才生成jar添加到classpath,如下:
2、然后新建一个BeanShell Sampler,且写下java代码,导入包和java一样,如下:
写好java代码后,同时把它放入jmeter内置变量vars中,然后再http中怎么获取该变量呢?通过${变量名}获取。下面我以百度一个连接为例子,如下:
3、运行下,查看是否应用变量成功,通过结果树进行查看是否成功,如下:
变量已经成功被获取到,时间-2019-09-05 19:30:30的时间戳就是
1567683030000,这样说明应用的变量没有错。
目前jar包制作和jar在jmeter中应用中就差不多就是这样子。