Jemeter插件开发
0x00.这段时间做服务器接口测试,遇到一个需要动态获取校验码的,需要自己开发插件。
0x01.准备基本的开发环境eclipse,下载jmeter源码,导入工程。下载地址:http://jmeter.apache.org/download_jmeter.cgi,请选择你使用的jmeter对应版本的源码。
0x02.在src/functions下新建你自己的函数类
0x03.开始码代码:
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 {"函数名称"}extends AbstractFunction { //private static final Logger log = LoggingManager.getLoggerForClass(); private static final Listdesc = new LinkedList (); private static final String KEY = "__函数名称"; private Object[] values = null; //Add arguments description static{ desc.add("参数提示一"); desc.add("参数提示二"); } @Override public List getArgumentDesc() { // TODO Auto-generated method stub return desc; } @Override public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException { String numberString1 = ((CompoundVariable) values[0]).execute().trim(); String numberString2 = ((CompoundVariable) values[1]).execute().trim(); String 参数一; String 参数二; try{ url = numberString1; isAuth = numberString2; } catch (Exception e){ return null; } return String.valueOf(work(参数一,参数二)); } public static void print(String s){ System.out.println(s); } private String work(String 参数一,String 参数二) { String ret = null; //.....your code return ret; } @Override public void setParameters(Collection parameters) throws InvalidVariableException { //可以检查参数数量,主要包括以下两种方法 checkMinParameterCount(parameters, 2); checkParameterCount(parameters, 2, 2); values = parameters.toArray(); } @Override public String getReferenceKey() { //显示的函数名称 return KEY; } }