Jmeter二次开发函数 - 将指定时间转换为时间戳
1、达到效果:在jmeter的函数助手增加一个“timeStamp”函数,调用“timeStamp”函数可以将用户传入的时间转换为时间戳。
2、eclipse项目创建步骤此处省略,可参考上一篇Jmeter二次开发函数之入门
3、直接新建一个class命名为“TimeStampFunction”并继承jmeter自带的AbstractFunction
4、TimeStampFunction.java代码(逻辑为:创建key="__timeStamp",声明传入时间参数的处理方法,最终返回时间戳结果)
package org.apache.jmeter.functions; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Date; import java.util.LinkedList; import java.util.List; import org.apache.jmeter.engine.util.CompoundVariable; import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.samplers.Sampler; public class TimeStampFunction extends AbstractFunction { private static String key="__timeStamp"; private static List<String> timeParams=new LinkedList<String>(); static { timeParams.add("请输入需要转换的时间(必填。填入的时间格式需为yyyy-MM-dd或者yyyy-MM-dd HH:mm:ss)"); } public String time=""; @Override public List<String> getArgumentDesc() { return timeParams; } @Override public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException { // TODO Auto-generated method stub String lastTime=""; System.out.print("用户传入时间为:"+time); //当传入时间格式为yyyy-MM-dd则自动补充为yyyy-MM-dd HH:mm:ss String relTime=time.length()==19?time:time+" 00:00:00"; try{ Date guitime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(relTime); lastTime=String.valueOf(guitime.getTime()); System.out.print(relTime+"转换时间戳为:"+lastTime); }catch (ParseException e){ e.printStackTrace(); lastTime="输入日期格式错误,请重新填入"; } System.out.print("最终转换时间戳为:"+lastTime); return lastTime; } @Override public String getReferenceKey() { return key; } @Override public void setParameters(Collection<CompoundVariable> arg0) throws InvalidVariableException { checkParameterCount(arg0,1); Object[] data=arg0.toArray(); time=((CompoundVariable)data[0]).execute(); } }
5、将TimeStampFunction.java代码保存,导出到桌面并命名为TimeStampFunction.jar。将TimeStampFunction.jar复制到jmeter目录下\apache-jmeter-5.5\lib\ext\
6、重启jmeter,打开函数助手可以看到多了一个timeStamp函数,并且函数可以传入时间参数并获对应的时间戳
Jmeter自带函数也可以将指定时间转化为时间戳,参考Jmeter函数助手30-groovy