Jmeter實現dubbo接口壓測


  • 當前項目中重構了消息服務,需要對消息服務接口做性能壓測,評估消息服務的性能情況,查詢了很多資料,最后調試通過,記錄下
  • 以前也用Jmeter對dubbo接口進行過測試,需要使用java語言編寫方法調用dubbo接口,然后創建一個Maven項目,生成依賴的jar包,在把jar包放到Jmeter的lib目錄,然后在java類型請求中,就可以看到自定義的java請求,及其繁瑣,耗時

下面講解怎么使用jmeter-plugins-dubbo做接口測試

 

第一步:

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

 

注意:

jmeter-plugins-dubbo使用

下載提供2種版本:

A. 第一種版本是jmeter-plugins-dubbo-2.7.1-jar-with-dependencies.jar類似帶有with-dependencies的jar是包含一些基礎包,我下載的這個

B. 第二種是不帶依賴包的版本,例如jmeter-plugins-dubbo-2.7.1.jar。然后獲取以下依賴包,將它們放到jmeter安裝目錄下的lib/ext。如果是項目中使用報錯,或者dubbo版本不是2.X版本的,建議下載這個

gson-2.8.2.jar

dubbo-2.8.4.jar  

javassist-3.21.0-GA.jar

jline-0.9.94.jar

log4j-over-slf4j-1.7.5.jar

netty-3.7.0.Final.jar

slf4j-api-1.7.5.jar

zkclient-0.2.jar

zookeeper-3.4.9.jar

 

第二步:

將下載的jmeter-plugins-dubbo-2.7.1-jar-with-dependencies.jar

放在jar文件JMETER_HOME/lib/ext目錄下

 

然后啟動Jmeter添加dubbo sample

 第三步:

獲取jmeter sample所需要填寫的參數:

開發提供信息:

1)zookeeper地址:zookeeper://10.185.240.81:2181?backup=10.185.240.82:2181,10.185.240.83:2181

2)直連地址:dubbo://10.0.254.32:10810

3)服務版本:1.0.0

1.telnet 直連地址  telnet 10.0.254.32 10810

2.ls命令查看接口列表

3.ls -l 接口名  查看該接口方法列表,獲取方法名和參數類型

4)根據接口文檔填寫參數,使用invoke命令進行調試

 

第四步:

invoke調試通過后將參數填入到jmeter dubbo sample中

補充:接口名和方法名可以通過get provider list選擇,避免手動填寫出錯,實測過程中獲取provider list時間較長

請求參數

返回結果

單接口調試通過,可以設置場景壓測了!

 

各參數說明如下:

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格式數據;

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM