Jmeter使用之:怎么编写扩展函数(一)

2017-11-12 流星雨

Jmeter的官方提供的函数挺好用的,但是往往这些函数并不能满足我们所有的需要。所以,我们需要编写自己的扩展函数,下面以获取当前(或者向前,向后)的时间为例。

1、首先编写我们的java类,如具体代码如下:

package com.ste.ruink.timetool;

import java.text.SimpleDateFormat;

import java.util.Date;

public class TimeConvert {

/*

* 获取时间,当前时间往前(后)多少秒,flag为前后标识符(pre-前,later-后,其他值时默认为当前)

* seconds为间隔时间多少秒,format为日期格式,默认为yyyy-MM-dd HH:mm:ss

*/

public static String getTime(String flag,long sec,String format){

//获取当前时间戳

long timestamp = System.currentTimeMillis();

long finaltime;

if(flag==”pre”){

finaltime = timestamp - sec*1000;

}else if(flag==”later”){

finaltime = timestamp + sec*1000;

}else{

finaltime = timestamp;

}

//判断format是否有值

if(format.equals(null)||format==”“){

format=”yyyy-MM-dd HH:mm:ss”;

}

String timestr = String.valueOf(finaltime);

String getdate = stampToDate(timestr,format);

return getdate;

}

/*

* 将时间戳转换为时间

*/

public static String stampToDate(String s,String format){

String res;

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);

long lt = new Long(s);

Date date = new Date(lt);

res = simpleDateFormat.format(date);

return res;

}

/*

* 测试代码

*/

/*

public static void main(String[] args) {

System.out.print(getTime(“”,60,”“));

}*/

}

2、使用eclipse把java导出成jar包,如timetool.jar。(导出jar包:选中要导出的java,然后右击鼠标,依次选择Export->Java->JAR file,然后在界面中填写导出的路径,点击Finish按钮完成导出)

3、Jmeter 测试计划底部的library找到timetool.jar,导入进去。

4、在Jmeter测试计划下新建线程组,然后在线程组下添加BeanShell Sampler(线程组->添加->Sampler->BeanShell Sampler)

5、调用脚本,如在BeanShell Sampler中的script下添加:

import com.ste.ruink.timetool.TimeConvert; //标明类路径

String time = TimeConvert.getTime(“”,0,”“); //调用类中getTime方法

return time; //返回获取到的时间

6、在线程组中添加监听器“察看结果树”。然后再点击执行,这时神奇的事情出现了,我们获取到了当前的时间。

最后想更多了解的可以加我qq:3012665461

最后附上官方的函数帮助文档地址: http://jmeter.apache.org/usermanual/functions.htm


用户评论
开源开发学习小组列表