一、Dubbo简介
dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
二、Dubbo接口测试方案
方法:使用jmeter测试dubbo接口
1、安装Dubbo插件
(1). jmeter本身并不支持dubbo接口的测试,需要下载第三方插件,然后将jar包放入${JMETER_HOME}\lib\ext路径下,重启即可。
(2). 插件下载地址:jmeter-plugins-dubbo
(3). 如果你使用了“xxx–with-dependencies.jar”这个插件包,一定要保证你的lib目录下,不能有如下5个基础包文件,因为jar包中已经包含了依赖包。
dubbo-2.5.3.jar
javassist-3.15.0-GA.jar
zookeeper-3.4.6.jar
zkclient-0.1.jar
netty-3.7.0-Final.jar
2、Dubbo Sample测试
(1).将定义dubbo接口jar包放到${JMETER_HOME}\lib\ext目录下(这个可以跟开发要),重启jmeter,将jar包读进内存。
备注:若dubbo接口还依赖其它的业务jar包,依赖jar包也要放到${JMETER_HOME}\lib\ext目录下(这个可以跟开发要)
(2).启动jmeter,添加线程组→Sampler→Dubbo Sample,界面如下:
(3).配置说明
Protocol:注册协议,包括none、zookeeper、multicast、Redis、simple;
Address:注册地址,dubbo服务的IP+Port:
①、若选择zookeeper,address填入zookeeper的服务地址,集群地址使用英文","分隔;
②、若选择dubbo直连,则将 Protocol 选择 none,address 填写 Dubbo 服务地址和端口;
Protocol:使用的dubbo协议,包括dubbo、rmi、hessian、webservice、memcached、redis,根据自己的协议类型选择对应的选项即可;
Timeout:请求超时时间,单位ms,根据dubbo具体配置填写;
Version:版本,dubbo不同版本之间差异较大,不同版本之间不能互相调用,这里指定dubbo版本,是为了方便识别和说明;
Retries:异常重试次数(类似这种分布式服务通信框架,大多都有重试机制,是为了保证事务成功率);
Cluster:集群类型,包括failover、failfast、failsafe、failback、failking;
Group:组类型,如果有的话,根据配置填写即可;也即GroupID,不是Maven配置中的和标签中的,而是写在方法上面的@Service注解中,开发一般知道。
Connections:连接数,同上,根据配置填写;
Async:服务处理类型,包括sync(同步)、async(异步),根据配置填写;
Loadbalance:负载均衡策略,包括random(随机)、roundrobin(轮询)、leastactive(最少活跃数)、consistenthash(一致性哈希);
Get Provider List:点击后,可获取zookeeper上注册的所有服务,然后可以下拉选择Interface和Method,也可以在下面直接输入Interface和Method
Interface:接口名(因为dubbo服务大多是开发根据规范自行命名的,因此这里需要填写完整的接口名,即包名+接口名,组成一个完整的接口路径,即完整的接口地址路径);
Method:当前接口下的方法名,按照开发提供的API文档填写即可;
Args:接口报文,根据API文档填写,如上图所示,添加输入行,输入对应的参数类型和值即可(参数类型和值如何定义填写,请参考上面的链接);
①、paramType:参数支持任何类型,基本类型(如 int、float、shot、double、long、byte、boolean、char等)直接写类型名,基础包装类直接使用java.lang下的包装类,自定义类使用类完整名称;具体可参考下方参数对照表
②、paramValue:基本类和基础包装类直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据;具体可参考下方参数对照表
另附
2.dubbo接口、方法、参数及参数类型可咨询开发或查询接口文档、或通过反编译软件去查看。
3.Zookeeper服务或者Dubbo服务的IP、Port可咨询开发或者运维。
三、dubbo接口测试实战
(1)、dubbo接口设计文档
(2)dubbo接口jar包反编译
(3)dubbo接口脚本设计