jmeter-plugins-dubbo插件安装
https://github.com/thubbo/jmeter-plugins-for-apache-dubbo, 最好下载带依赖包的jar包
插件安装目录:${JMETER_HOME}\lib\ext

创建线程组

新增Dubbo Config

技术-测试组 > 02 dubbo接口测试 > image2020-8-21_9-46-22.png

技术-测试组 > 02 dubbo接口测试 > image2020-8-21_9-46-43.png

Config Center:配置中心,可选组件,若没有可不填写

Registry Center:

Protocol:注册协议,包括zookeeper、nacos、multicast、Redis、simple

选择——>zookeeper

Address:注册地址,dubbo服务的IP:Port;

由于使用zk,address填入zk地址,集群地址使用","分隔;

东家zookeeper地址见disconf_zookeeper.properties

目前test环境地址——>172.16.4.27:2181,172.16.4.27:2182,172.16.4.27:2183

RPC Protocol:

Protocl:注册协议,支持dubbo://, rmi://,hessian://,webservice://,memcached://,redis://

选择——>dubbo://

Consumer&Service:

Timeout:请求超时时间,单位ms,根据dubbo具体配置填写;

Version:服务版本,与服务提供者的版本一致 这个指的是服务端@service的version内容。dubbo不同版本之间差异较大,不同版本之间不能互相调用,这里指定dubbo版本,是为了方便识别和说明

Retries:异常重试次数(类似这种分布式服务通信框架,大多都有重试机制,是为了保证事务成功率);默认0

Cluster:集群类型,包括failover、failfast、failsafe、failback、failking;默认failfast

Failover Cluster,失败自动切换,自动重试其他服务器

Failfast Cluster,快速失败,立即报错,只发起一次调用

Failsafe Cluster,失败安全,出现异常时,直接忽略

Failback Cluster,失败自动恢复,记录失败请求,定时重发

Forking Cluster,并行调用多个服务器,只要一个返回成功即可

Broadcast Cluster,广播逐个调用所有提供者,任意一个报错则报错

Group:服务分组类型,如果有的话,根据配置填写即可;当一个接口有多个实现,可以用分组区分,需和服务提供方一致 这个指的是服务端@service的group内容

Connections:连接数,同上,根据配置填写;默认100

Async:服务处理类型,包括sync(同步)、async(异步),根据配置填写;

Loadbalance:负载均衡策略,包括random(随机)、roundrobin(轮询)、leastactive(最少活跃数)、consistenthash(一致性哈希);

Random,随机,按权重配置随机概率,调用量越大分布越均匀,默认方式

RoundRobin,轮询,按权重设置轮询比例,如果存在比较慢的机器容易在这台机器上请求阻塞较多

LeastActive,最少活跃调用数,不支持权重,只能根据自动识别的活跃数分配,不能灵活调配,相同活跃数的随机

ConsistenHash,一致性hash,对相同参数的请求路由到一个服务提供者上,如果有类似灰度发布需求可采用

新增Dubbo Sample

Config Center、Registry Center、RPC Protocol、Consumer&Service的配置见Dubbo Config,不用重复填写

dubbo接口及方法-Interface&Method:

直接选择

点击【Get Provider List】可获取所有接口名和方法名(时间较长),然后可在interface及method栏下拉选择,支持关键词筛选

dubbo在测试环境中设置为直连模式 dubbo本地测试_dubbo在测试环境中设置为直连模式_03


dubbo在测试环境中设置为直连模式 dubbo本地测试_zookeeper_04


dubbo在测试环境中设置为直连模式 dubbo本地测试_测试工具_05

直接填写

Interface:接口需要填写类型完全名称,含包名(因为dubbo服务大多是开发根据规范自行命名的,因此这里需要填写完整的接口名+包名);

Method:当前接口下的方法名,按照开发提供的API文档填写即可;

接口传参类型及参数值-Args:

Args:接口根据API文档填写,添加输入行,输入对应的参数类型和值即可,

paramType:参数支持任何类型,包装类直接使用java.lang下的包装类,基础类型使用:int、float、shot、double、long、byte、boolean、char,自定义类使用类完全名称;

paramValue:基础包装类和基础类型直接使用值,例如:int为1,boolean为true等,自定义类与List或者Map等使用json格式数据;

dubbo在测试环境中设置为直连模式 dubbo本地测试_github_06


dubbo在测试环境中设置为直连模式 dubbo本地测试_github_07


dubbo在测试环境中设置为直连模式 dubbo本地测试_apache_08

参数类型和值如何定义填写可参考https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/ParameterComparisonTable
一些空参使用案例&复杂参数可参考https://github.com/thubbo/jmeter-plugins-for-apache-dubbo/wiki/FAQ

察看结果树

技术-测试组 > 02 dubbo接口测试 > image2020-8-21_9-59-22.png