jmeter自定義函數


1.和jmeter偽二次開發前面相同,引入的包最少需要AbstractFunction和CompoundVariable,包從對應的jmeter的lib文件夾下面找

 

 

2.必須要命名包名,包名的形式為XXXX.functions的格式

 

3.創建類必須繼承AbstractFunction

4.查看和編寫內容

 5.代碼

public class hello2 extends AbstractFunction {
public static final String key="__hello";
public static List<String> params=new LinkedList<>();
public static String username;
public static String username1;
static{
params.add("請輸入第一個數字");
params.add("請輸入第二個數字");
}
@Override
//用來設置GUI界面的函數參數對話框,把自己定義的參數給顯示在jmeter的GUI界面上
public List<String> getArgumentDesc() {
// TODO Auto-generated method stub
return params;
}
@Override
//函數的邏輯執行主體,就是用戶使用此函數之后返回的內容是什么,比如return "ty",那么用戶在jmeter使用${__hello(,)}時就響應ty
//
public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException {
int a=Integer.valueOf(username);
int b=Integer.valueOf(username1);
int c=a+b;
return c+"";
}
@Override
//用來定義函數的名稱,把自己定義的內容顯示在函數對話框中
public String getReferenceKey() {
// TODO Auto-generated method stub
return key;
}
@Override
//y用來接收和處理GUI界面的參數的傳值
public void setParameters(Collection<CompoundVariable> arg0) throws InvalidVariableException {
// TODO Auto-generated method stub
//checkMinParameterCount(arg0,1);//用來檢查傳參的最小值
//checkParameterCount(arg0,2);//用來檢測傳參的個數
//checkParameterCount(arg0,2,4);//用來檢測傳參個數的范圍,2-4個
//先將接收的參數轉成數組,values接收頁面上傳過來的多個值,用數組的形式存儲
Object[] values=arg0.toArray();
//然后使用CompoundVariable提供的execute()方法將值轉成toString
username=((CompoundVariable)values[0]).execute();
username1=((CompoundVariable)values[1]).execute();
}

}


免責聲明!

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



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