jmeter(二十四)dubbo接口測試

 

 

最近工做中接到一個需求,須要對一個MQ消息隊列進行性能測試,測試其消費能力,開發提供了一個dubbo服務來供我調用發送消息。java

這篇博客,介紹下如何利用jmeter來測試dubbo接口,並進行性能測試。。。git

 

1、Dubbo簡介github

dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。其核心部分包含以下幾點:web

一、遠程通信:提供對多種基於長鏈接的NIO框架抽象封裝,包括多種線程模型,序列化,以及「請求-響應」模式的信息交換方式;redis

二、集羣容錯:提供基於接口方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集羣支持;json

三、自動發現:基於註冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方能夠平滑增長或減小機器;負載均衡

四、dubbo簡化模型框架

 

2、Dubbo插件dom

一、jmeter自己並不支持dubbo接口的測試,須要下載第三方插件,而後將jar包放入${JMETER_HOME}\lib\ext路徑下,重啓便可。異步

插件下載地址:jmeter-plugins-dubbo

二、選擇本身須要的插件,爲了適配性考慮,建議1.3.2及以上的版本。

各版本更新說明:changelog

三、參數說明

簡單參數對照表複雜參數對照表

 

3、Dubbo Sample

啓動jmeter,添加線程組→Sampler→Listener,dubbo-sample界面以下:

各參數說明以下:

Protocol:註冊協議,包括zookeeper、multicast、Redis、simple;

Address:註冊地址,dubbo服務的IP+Port:

①、當使用zk,address填入zk地址,集羣地址使用","分隔;

②、使用dubbo直連,address填寫直連地址和服務端口;

Protocol:使用的dubbo協議,包括dubbo、rmi、hessian、webservice、memcached、redis,根據本身的協議類型選擇對應的選項便可;

Timeout:請求超時時間,單位ms,根據dubbo具體配置填寫;

Version:版本,dubbo不一樣版本之間差別較大,不一樣版本之間不能互相調用,這裏指定dubbo版本,是爲了方便識別和說明;

Retries:異常重試次數(相似這種分佈式服務通訊框架,大多都有重試機制,是爲了保證事務成功率);

Cluster:集羣類型,包括failover、failfast、failsafe、failback、failking;

Group:組類型,若是有的話,根據配置填寫便可;

Connections:鏈接數,同上,根據配置填寫;

Async:服務處理類型,包括sync(同步)、async(異步),根據配置填寫;

Loadbalance:負載均衡策略,包括random(隨機)、roundrobin(輪詢)、leastactive(最少活躍數)、consistenthash(一致性哈希);

Interface:接口名(由於dubbo服務大可能是開發根據規範自行命名的,所以這裏須要填寫完整的接口名+包名);

Method:當前接口下的方法名,按照開發提供的API文檔填寫便可;

Args:接口報文,根據API文檔填寫,如上圖所示,添加輸入行,輸入對應的參數類型和值便可(參數類型和值如何定義填寫,請參考上面的連接);

①、paramType:參數支持任何類型,包裝類直接使用java.lang下的包裝類,小類型使用:intfloatshotdoublelongbytebooleanchar,自定義類使用類徹底名稱;

②、paramValue:基礎包裝類和基礎小類型直接使用值,例如:int爲1,boolean爲true等,自定義類與List或者Map等使用json格式數據;

 

以上即爲利用jmeter的dubbo插件進行dubbo接口的測試,固然,一樣能夠進行性能測試,更多使用方式請自行探索。。。

相關文章
相關標籤/搜索