目前主流的分布式框架有Dubbo和SpringCloud, SpringCloud是基于Http协议的分布式框架,Dubbo是基于RPC的分布式框架,Jmeter没有内置对Dubbo接口的支持,很难直接对Dubbo接口进行测试。
Alibaba在2018年正式提供了Dubbo-Jmeter的插件(下载地址:https://dwz.cn/Uo3JILCS)通过集成此插件,可通过Jmeter实现Dubbo接口测试,此插件对系统版本有一定要求:
支持Jmeter版本:3.0+
支持Dubbo版本:2.5.x,2.6.x
本文是基于Jmeter 5.0和Dubbo 2.5.x编写案例调用。
Dobbo简介
使用Jmeter对Dubbo服务进行测试前,需要了解Dubbo的基础原理和架构,Dubbo有三大模块( http://dubbo.apache.org/en-us/ ):
• Registry: 服务注册与发现的注册中心(常用Zookeeper作为注册中心)。
• Provider: 暴露服务的服务提供方。
• Consumer: 调用远程服务的服务消费方。
Jmeter使用插件模拟服务消费方去调用服务提供方的方法,来实现Dubbo服务的测试,在测试具体的服务前,需要和开发进行沟通,了解Dubbo服务的:
• 服务注册协议
• 服务注册地址
• 服务版本
• 服务集群配置
• 服务所属分组
• 服务的全名
• 服务的方法
• 服务的入参以及类型
Jmeter实现Dubbo服务的测试
将官网提供的jmeter-plugins-dubbo-x.x.x-jar-with-dependencies 插件放置到Jmeter的第三方插件包中
JMETER_HOME/lib/ext下,重启Jmeter 以后可以在取样器中看到Dubbo Sample。
在Dubbo Sample中填写服务的相关信息:
• 配置中心:Config Center,可选组件,若没有可不填写
• 注册协议:支持直连,zookeeper, multicast,redis...
• 注册中心地址:ip:port
• 注册协议:支持dubbo://, rmi://
• 服务接口信息:Interface填写配置文件中的包名.类型,Methods填写方法名,Args填写调用的参数
运行Dubbo Sample,可在查看结果树中看到请求参数以及方法调用后的结果
作 者:Testfan Kitty
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接