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

jmeter使用

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,导入进去。

jmeter导入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; //返回获取到的时间

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

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



留言