一、项目创建
1、创建个maven项目;
2、将Jmeter的ApacheJMeter_core.jar、ApacheJMeter_functions.jar导入项目;
二、函数实现
1、创建个class作为函数实现类
有以下2点需要注意:
⑴注意calss的包名中需要包含".functions"。JMeter设计让一些核心的类可以在非UI的方式下运行的时候能被加载进来,这些类会被优先加载。加载这些类的时候是通过命名规则来实现的。所有实现function的类必需包含".functions",所以我们自定义实现的类里必须包含".functions",比如如下申明的包名为:"org.apache.functions.functions";
⑵需要class需要继承AbstractFunction,AbstractFunction类提供了4个抽象方法,在扩展自定义函数的时候需要实现它们。
①public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException
该方法在用于传递用户在执行过程当中传入的实际参数值,一般该方法传入的参数会被保存在类内全局变量里,并可在后面调用的execute方法中调用。
②public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException
JMeter会将上次运行的SampleResult和当前的Sampler作为参数传入到该方法里,返回值就是在运行该function后得到的值,以String类型返回。
③public String getReferenceKey()
设定function的名字。JMeter的命名规则是在方法名前面加入双下划线"__"。比如"__RedisDataGet",function的名字跟实现该类的类名应该一致,而且该名字应该以static final的方式在实现类中定义好,避免在运行的时候更改它。
④public List<String> getArgumentDesc()
添加对于function参数的描述
2、将项目达成jar包
三、函数添加与使用
将打好的jar包复制到${JMETER_HOME}libext,重新启动Jmeter,即可在函数助手中查看到并使用添加的自定义函数。