Jmeter新增自定義函式
阿新 • • 發佈:2019-01-21
最近測試一套介面,需要自定義函式,實現模擬資料並加密之類的功能,正好之前已經將Jmeter的原始碼在eclipse中執行起來了,可以通過在org.apache.jmeter.functions下新增函式。
1. 自然是從Jmeter官網下載src檔案,並匯入eclipse,可以參考另一篇博文點選開啟連結
2. 直奔主題進行編碼,在functions下新增類,繼承AbstractFunction,並重寫方法
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; import org.apache.jmeter.util.JMeterUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class GenParams extends AbstractFunction { private static final Logger log = LoggerFactory.getLogger(DateTimeConvertFunction.class); private static final List<String> desc = new LinkedList<>(); private static final String KEY = "__genParams"; //方法名字 private static final int MIN_PARAMETER_COUNT = 1;//最小引數數量 private static final int MAX_PARAMETER_COUNT = 4;//最大引數數量 static { desc.add(JMeterUtils.getResString("param1")); // 函式助手中顯示的引數說明,對應到引數 desc.add(JMeterUtils.getResString("param2")); // 函式助手中顯示的引數說明,對應到引數 desc.add(JMeterUtils.getResString("param3")); // 函式助手中顯示的引數說明,對應到引數 desc.add(JMeterUtils.getResString("param4")); // 函式助手中顯示的引數說明,對應到引數 desc.add(JMeterUtils.getResString("function_name_paropt"));// 儲存函式返回結果的變數,用於引用 } private CompoundVariable[] values; @Override public List<String> getArgumentDesc() { return desc; } @Override public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException { // 自己需要實現的邏輯 StringBuilder sb = new StringBuilder(); for(CompoundVariable value : values) { sb.append(value.execute()).append("_"); } return sb.toString(); } @Override public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException { checkParameterCount(parameters, MIN_PARAMETER_COUNT, MAX_PARAMETER_COUNT); values = parameters.toArray(new CompoundVariable[parameters.size()]); } @Override public String getReferenceKey() { return KEY; } }
3. 在src/functions上右鍵export,選擇jar檔案,名稱為ApacheJMeter_functions.jar
4. 替換apache-jmeter-5.0\lib\ext下的ApacheJMeter_functions.jar,啟動jmeter
可以看到自定義函式已經生效