Jmeter自定义函数

  1. IDEA创建MAVEN工程
    Jmeter自定义函数_第1张图片
    Jmeter自定义函数_第2张图片
    Jmeter自定义函数_第3张图片
    Jmeter自定义函数_第4张图片
  2. 导入Jmeter的依赖包

Jmeter的依赖包先放到本地MAVEN仓库中
Jmeter自定义函数_第5张图片

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

Jmeter自定义函数_第6张图片

修改MAVEN pom.xml文件

        
            org.apache.jmeter
            ApacheJMeter_functions
            3.0-SNAPSHOT
        
        
        
            org.apache.jmeter
            ApacheJMeter_core
            3.0-SNAPSHOT
        
    

Jmeter自定义函数_第7张图片
3. 按照规定的格式增加java自定义函数
Jmeter自定义函数_第8张图片
package一定要是org.apache.jmeter.functions

添加java文件
Jmeter自定义函数_第9张图片
按照要求重构四个函数

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 desc = new LinkedList();

    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 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 parameters) throws InvalidVariableException {
        checkParameterCount(parameters, MIN_PARA_COUNT, MAX_PARA_COUNT); //检查参数的个数是否正确
        values = parameters.toArray(); //将值存入类变量中
    }

}

  1. Maven Build生成jar包,拷贝至$JMETER__HOME/lib/ext目录下,重新启动JMeter
    Jmeter自定义函数_第10张图片
  2. 重新启动Jmeter
    Jmeter自定义函数_第11张图片

Jmeter自定义函数_第12张图片

你可能感兴趣的:(Jmeter性能测试)