目前主流的分布式框架有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
出 處:微信公眾號:自動化軟件測試平台
版權說明:歡迎轉載,但必須注明出處,並在文章頁面明顯位置給出文章鏈接
