一.创建一个maven项目
创建成功之后在pom.xml添加依赖
<dependencies>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>5.3</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>5.3</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_functions</artifactId>
<version>5.3</version>
</dependency>
</dependencies>
二.新建一个package
注意要以functions结尾
在package下新建一个java项目
让这个java类继承jmeter的AbstractFunction
然后alt + enter实现AbstractFunction
三.补全这四个函数
这四个函数的功能分别如下:
定义几个变量
Key代表函数名,desc是描述,这两个变量名可以直接返回了
贴一下全部代码,这部分代码的作用就是生成一个随机手机号码
package org.example.functions;
import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.functions.AbstractFunction;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.util.JMeterUtils;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
public class test_jmeter extends AbstractFunction {
private static final String Key = "__funcByLsq";
private static final List<String> desc = new LinkedList<>();
private static final String[] telFirst = "134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153 ".split(",");
static{
desc.add(JMeterUtils.getResString("Name of variable in which to store the result (optional)"));
}
@Override
public String execute(SampleResult sampleResult, Sampler sampler) throws InvalidVariableException {
//实现functions的核心功能
int index = getNum(0, telFirst.length - 1);
String first = telFirst[index];
String second = String.valueOf(getNum(1, 888) + 10000).substring(1);
String third = String.valueOf(getNum(1, 9100) + 10000).substring(1);
String mobile = first + second + third;
return mobile;
}
private static int getNum(int start,int end)
{
return (int)(Math.random()*(end-1));
}
@Override
public void setParameters(Collection<CompoundVariable> collection) throws InvalidVariableException {
//传入参数
}
@Override
public String getReferenceKey() {
//jmeter中Function Helper下拉框中显示的函数名
return Key;
}
@Override
public List<String> getArgumentDesc() {
//入参的描述
return desc;
}
}
四.打jar包
打开终端
输入命令mvn clean install
,如果命令高亮的话,按照他的提示按ctrl+ente
r来执行命令
打包成功
五.把jar包放到jmeter里面
复制刚刚打包好的java的jar包,放到jmeter目录下/lib/ext
下
然后重启,点击安装目录/bin/jmeter.bat
进行重启
然后打开jmeter的函数助手,可以看到在java里面开发的函数已经出现在这边了
然后我们在beanshell里面尝试调用一下这个函数,成功生成一个随机手机号码
java二次开发成功了。