Jmeter自定義函數

  1. IDEA創建MAVEN工程
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
  2. 導入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(); //將值存入類變量中
    }

}

  1. Maven Build生成jar包,拷貝至$JMETER__HOME/lib/ext目錄下,重新啓動JMeter
    在這裏插入圖片描述
  2. 重新啓動Jmeter
    在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章