1、打开IntelliJ IDEA,新建一个Maven项目
2、导入Jmeter的依赖包
在idea中导入jmeter\lib\ext下的ApacheJMeter_core.jar和ApacheJMeter_functions.jar依赖包
3、添加java自定义函数
要实现扩展JMeter function,主要有两点:
实现function的类的package声明必须包含".functions"需要继承org.apache.jmeter.functions.AbstractFunction,并且实现相应的方法。
扩展AbstractFunction类
新建的函数类可以反编译ApacheJMeter_functions.jar中的class文件进行改写:
package org.apache.jmeter.functions;
import java.util.Collection;
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;
import org.apache.jmeter.util.JMeterUtils;
public class BaseConversion extends AbstractFunction {
//自定义function的描述
private static final List<String> desc = new LinkedList<String>();
//function名称
private static final String KEY = "__BaseConversion";
static {
desc.add("转换字符串");
desc.add("1,十进制转换十六进制;2,十六进制转换十进制");
}
private CompoundVariable inputCharacter;
private CompoundVariable changeCase;
// 函数的逻辑执行主体
/** {@inheritDoc} */
@Override
public String execute(SampleResult previousResult, Sampler currentSampler)
throws InvalidVariableException {
String inputCharacter1 = String.valueOf(inputCharacter.execute());
int changeCase1 = Integer.valueOf(changeCase.execute());
switch (changeCase1){
case 1 :
return Long.toHexString(Long.parseLong(inputCharacter1));
case 2 :
long sixteen3 = Long.parseLong(inputCharacter1, 16);
return Long.toString(sixteen3);
default :
return null;
}
}
// 用来接收和处理GUI界面的参数的传值
/** {@inheritDoc} */
@Override
public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
checkParameterCount(parameters, 2);
Object[] values = parameters.toArray();
inputCharacter = (CompoundVariable) values[0];
changeCase = (CompoundVariable) values[1];
}
// 用来定义函数的名称,把自定义的内容显示在函数对话框中
/** {@inheritDoc} */
@Override
public String getReferenceKey() {
return KEY;
}
// 用来设置GUI界面的函数对话框,把自己定义的参数给显示在jmeter的GUI界面上
/** {@inheritDoc} */
@Override
public List<String> getArgumentDesc() {
return desc;
}
}
4、将自定义函数编译成.class文件
(Build->Build project)
5、将.class文件添加到ApacheJMeter_functions.jar中
使用WinRAR打开ApacheJMeter_functions.jar,进入orgapachejmeterfunctions目录
重新启动jmeter
打开函数助手
自定义函数添加成功