jmeter 二次開發---實現自定義函數插件


1.前提:

有時候,Jmeter自帶的函數,可能不能滿足於業務的需求,這時候,我們可以自己寫一個函數插件;

2.創建maven工程

一直next,輸入GroupID,ArtifactId->finsh

 

 

3.編輯pom.xml

創建好maven工程后,引入Jmeter的jar包,注意你本地Jmeter版本是幾,這里<version></version>就寫幾

<dependency>
  <groupId>org.apache.jmeter</groupId>              <artifactId>ApacheJMeter_core</artifactId>
<version>3.3</version>
</dependency>

<dependency>
<groupId>org.apache.jmeter</groupId>        <artifactId>ApacheJMeter_java</artifactId>
<version>3.3</version>
</dependency>

 

4.創建一個package 

 

實現擴展jmeterfunction,主要有兩點:

1.實現function的類的package聲明必須包含".functions"

2.需要繼承org.apache.jmeter.functions.AbstractFunction,並且實現相應的方法

5.擴展類AbstractFunction講解

public List<String> getArgumentDesc()

功能描述:顧名思義描述你寫的這個方法是干嘛使的。

public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException

需要實現什么功能。

public String getReferenceKey()

返回function名稱

public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException

設置參數,接收用戶傳遞的參數

5.代碼講解

public class TicketNo extends AbstractFunction{

    //添加方法描述
    private static final List<String> desc = new LinkedList<String>();
    static {
        desc.add("ticketNo");
    }
    //function名稱
    private static final String KEY = "__JddTicketNo";
    private static final int num = 1;
    
     //傳入參數的值
    private Object[] values;
    
    private Date data =new Date();
    
    /**功能描述**/
    public List<String> getArgumentDesc() {
        // TODO Auto-generated method stub
        return desc;
    }

    @Override
    public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
        try {
            Thread.sleep(1000);
            String ticket = String.valueOf(data.getTime())
            System.out.println("當前輸出"+ticket);
            return ticket;
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            throw new InvalidVariableException(e);
        }
    }

    /**
     * 設置參數。接收用戶傳遞的參數
     * @param collection
     * @throws InvalidVariableException
     * **/
    @Override
    public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException {
        checkParameterCount(parameters, num);
        values = parameters.toArray();
        
    }

    /**返回function名稱**/
    @Override
    public String getReferenceKey() {
        return KEY;
    }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM