此篇文章將在Jmeter建立一個新函式,實現替換文字中的指定內容功能。效果圖如下
1、eclipse專案建立步驟此處省略,可參考上一篇Jmeter二次開發函式之入門
2、新建class命名為“TextReplaceFunction”,並繼承jmeter自帶的AbstractFunction
3、新生成檔案TextReplaceFunction.java繼承jmeter的AbstractFunction帶出4個方法,函式開發就是在這4個方法上改造
4、TextReplaceFunction.java,功能實現的完整程式碼如下
package org.apache.jmeter.functions; import java.util.Collection; import java.util.LinkedList; import java.util.List; import org.apache.jmeter.engine.util.CompoundVariable; import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.samplers.Sampler; public class TextReplaceFunction extends AbstractFunction { private final static String key="__TextReplace"; private static List<String> strParams=new LinkedList<String>(); static { strParams.add("原始文字(必填)"); strParams.add("被替換內容(必填)"); strParams.add("替換為(必填)"); } public String originalText=""; public String text=""; public String ReplaceText=""; @Override public List<String> getArgumentDesc() { return strParams; } @Override public String execute(SampleResult arg0, Sampler arg1) throws InvalidVariableException { String result = originalText.replaceAll(text, ReplaceText); return result; } @Override public String getReferenceKey() { return key; } @Override public void setParameters(Collection<CompoundVariable> arg0) throws InvalidVariableException { checkParameterCount(arg0,3); Object[] data=arg0.toArray(); originalText=((CompoundVariable)data[0]).execute(); text=((CompoundVariable)data[1]).execute(); ReplaceText=((CompoundVariable)data[2]).execute(); } }
5、TextReplaceFunction.java檔案右鍵匯出jar包
選擇java->JAR file,點選next
儲存到jmeter安裝目錄下\apache-jmeter-5.5\lib\ext\TextReplaceFunction.jar
6、重啟jmeter,開啟函式助手就能看到多了一個TextReplace函式
檢視TextReplace函式有3個引數
7、TextReplace函式使用效果