1.dubbo sampler取样器支持jmeter进行dubbo接口测试
1.1>强烈推荐使用with-dependencies字样,原因是该jar包里面包含一些基础jar包,不需要再自行添加基础jar包,否则会造成jar包冲突:jmeter-plugins-dubbo-${version}-jar-with-dependencies.jar
jmeter-plugins-dubbo-2.7.1-jar-with-dependencies.jar
插件源码:https://github.com/dubbo/jmeter-plugins-dubbo
1.2>如果是使用jar包格式:jmeter-plugins-dubbo-${version}.jar
需要手动添加需要自行添加插件的依赖包,依赖包版本如下
dubbo-2.5.3.jar
javassist-3.15.0-GA.jar
zookeeper-3.4.6.jar
zkclient-0.1.jar
jline-0.9.94.jar
netty-3.7.0-Final.jar
slf4j-api-1.7.5.jar
log4j-over-slf4j-1.7.5.jar
2.接口包依赖添加方式
2.1>接口包及接口包依赖的其他jar包请添加到${JMETER_HOME}\lib\ext,重启jmeter
2.2>手动添加,如下图
3.插件使用
3.1>启动Jmeter添加DubboSample如下图:
3.2>添加后能看到DubboSample的具体操作页面,如下图:
4.页面参数介绍
4.1>Registry Settings 注册中心设置
Protocol=none为直连方式
Protocol=zookeeper使用zk注册中心
Protocol=multicast为广播方式
Protocol=redis使用redis注册中心
Protocol=simple使用simple注册中心
4.2>假如使用zk,address填入zk地址(集群地址使用","分隔),使用dubbo直连,address填写直连地址和服务端口
4.3>Consumer&Service Settings 消费者服务设置
timeout:服务方法调用超时时间(毫秒),默认1000
version:服务版本,与服务提供者的版本一致
retries:远程服务调用重试次数,不包括第一次调用,不需要重试设为0
cluster:集群方式,可选:failover/failfast/failsafe/failback/forking,默认
group: 服务分组,当一个接口有多个实现,可以用分组区分,必需和服务提供方一致,默认为空
Connections:连接,默认100
Async:异步, 默认 sync(同步)
Loadbalance:负载均衡,默认 random
4.7>Interface Settings
interface:被测试接口,需要填写类完整名称,含包名
Method:被测试方法
param Type :参数支持任何类型,包装类直接使用java.lang下的包装类,小类型使用:int、float、shot、double、long、byte、boolean、char,自定义类使用类完全名称
被测接口方法中参数类型,多个参数类型作为数组,换行写,AccountVo前面加完整参数类型路径,如下图是两个参数类型
param Value: 参数值,基础包装类和基础小类型直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据:key:value格式
4.8>运行结果
4.9>如果返回数据有乱码,加一个beanshell前置处理器,输入以下代码
prev.setDataEncoding("utf-8");