官网下载了apache-jmeter-3.3,配置环境变量,固然jdk要事先配好。java
通常用来测试并发和接口压力测试,因为工做须要用到以上需求,因此去了解下,而且记录下apache
其余基本使用就不介绍了,说下怎么写自定义函数吧,业务上模拟http下单请求,由于下单信息须要作加密,单一的参数提交已经不能实现需求,因此用到java代码来实现并发
======源代码=====app
public class MySignFunc extends AbstractFunction {ide
private static final List<String> desc = new LinkedList<String>();
private static final int MAX_PARA_COUNT = 8;
private static final int MIN_PARA_COUNT = 8;
static {
desc.add("输入appId");
desc.add("输入appSecret");
desc.add("输入phone");
desc.add("输入flowVal");
desc.add("输入scope");
desc.add("输入outOrderId");
desc.add("输入callbackUrl");
desc.add("输入timestamp");
desc.add("输入testModel");
}
private Object[] values;
//function名称
private static final String KEY = "__MySignFunc";
private String signStr = "";
@Override
public List<String> getArgumentDesc() {
// MyTask Auto-generated method stub
return desc;
}函数
@Override
public String execute(SampleResult arg0, Sampler arg1)
throws InvalidVariableException {
// MyTask Auto-generated method stub
String appId = ((CompoundVariable) values[0]).execute();
String appSecret = ((CompoundVariable) values[1]).execute();
String phone = ((CompoundVariable) values[2]).execute();
String flowVal = ((CompoundVariable) values[3]).execute();
String scope = ((CompoundVariable) values[4]).execute();
String outOrderId = ((CompoundVariable) values[5]).execute();
String callbackUrl = ((CompoundVariable) values[6]).execute();
String timestamp = ((CompoundVariable) values[7]).execute();
String testModel = ((CompoundVariable) values[8]).execute();
HashMap<String, String> params = new HashMap<>();
params.put("appId", appId);
params.put("phone", phone);
params.put("flowVal", flowVal);
params.put("scope",scope);
params.put("outOrderId", outOrderId);
params.put("callbackUrl",callbackUrl);
params.put("timestamp", timestamp);
params.put("testModel", testModel);
String signStr =MapUtils.createLinkString(params)+appSecret;
String sign = EncryptUtils.md5(signStr);
return sign;
}工具
@Override
public String getReferenceKey() {
// MyTask Auto-generated method stub
return KEY;
}开发工具
@Override
public void setParameters(Collection<CompoundVariable> arg0)
throws InvalidVariableException {
// MyTask Auto-generated method stub
values = arg0.toArray(); //将值存入类变量中
}测试
}
加密
导出jar包。放到\lib\ext下,重启jmeter,就会看到本身写的函数啦
输入对应的值,点击生成测试值是否正确,固然,值是变量来的,否则函数就是去了意义,变量能够采用 自定义用户变量的值或者读取数据文件的值,具体就不详细描述了。