- IDEA創建MAVEN工程
- 導入Jmeter的依賴包
Jmeter的依賴包先放到本地MAVEN倉庫中
install:install-file -Dfile=D:\apache-maven-3.5.4\repository\org\apache\jmeter\functions\ApacheJMeter_core\3.0-SNAPSHOT\ApacheJMeter_core.jar -DgroupId=org.apache.jmeter -DartifactId=ApacheJMeter_core -Dversion=3.0-SNAPSHOT -Dpackaging=jar
install:install-file -Dfile=D:\apache-maven-3.5.4\repository\org\apache\jmeter\functions\ApacheJMeter_functions\3.0-SNAPSHOT\ApacheJMeter_functions.jar -DgroupId=org.apache.jmeter -DartifactId=ApacheJMeter_functions -Dversion=3.0-SNAPSHOT -Dpackaging=jar
修改MAVEN pom.xml文件
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_functions</artifactId>
<version>3.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>3.0-SNAPSHOT</version>
</dependency>
</dependencies>
3. 按照規定的格式增加java自定義函數
package一定要是org.apache.jmeter.functions
添加java文件
按照要求重構四個函數
package com.sui.test;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
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;
public class MyFristFunction extends AbstractFunction {
//自定義function的描述
private static final List<String> desc = new LinkedList<String>();
static {
desc.add("Get a random int within specified parameter value.");
}
//function名稱
private static final String KEY = "__MyRandomFunc";
private static final int MAX_PARA_COUNT = 1;
private static final int MIN_PARA_COUNT = 1;
//傳入參數的值
private Object[] values;
private Random r = new Random();
public List<String> getArgumentDesc() {
// TODO Auto-generated method stub
return desc;
}
@Override
public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
try {
int max = new Integer(((CompoundVariable) values[0]).execute().trim());
int val = r.nextInt(max);
return String.valueOf(val);
} catch (Exception ex) {
throw new InvalidVariableException(ex);
}
}
@Override
public String getReferenceKey() {
return KEY;
}
@Override
public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
checkParameterCount(parameters, MIN_PARA_COUNT, MAX_PARA_COUNT); //檢查參數的個數是否正確
values = parameters.toArray(); //將值存入類變量中
}
}
- Maven Build生成jar包,拷貝至$JMETER__HOME/lib/ext目錄下,重新啓動JMeter
- 重新啓動Jmeter