JMeter + dubbo 接口測試

JMeter 介紹

JMeter 是 Apache 組織基於 Java 開發的一款開源的性能測試工具。它最初被設計用於 Web 應用測試,但後來擴展到其他測試領域,並可以在 Windows、Mac、Linux 環境下安裝使用。JMeter 還提供了圖形界面,這使得編寫測試用例變得非常簡單,具有易學和易操作的特點。

  • JMeter 官網:http://jmeter.apache.org/download_jmeter.cgi

前置準備:

  1. 下載安裝配置jmeter
  2. 安裝dubbo插件 jmeter-plugins-for-apache-dubbo
  • jmeter本身並不支持私有的 dubbo 協議,需要下載第三方插件
  • jmeter-plugins-for-apache-dubbo:是一款由 Dubbo 社區 Commiter – 凝雨同學開發的 JMeter 插件
  • 安裝方式
  • 克隆項目:git clone https://github.com/thubbo/jmeter-plugins-for-apache-dubbo.git
  • 打包項目,構建 JMeter 插件:mvn clean install,得到:jmeter-plugins-dubbo-2.7.3-jar-with-dependencies.jar
  1. 將jar包放入${JMETER_HOME}\lib\ext路徑下,重啓jmeter
    在這裏插入圖片描述

操作步驟:

  1. 創建線程組
    在“測試計劃”上右鍵 【添加】–>【線程(用戶)】–>【線程組】
    在這裏插入圖片描述
  2. 增加dubbo取樣器
    在剛剛創建的線程組上右鍵 【添加】–>【取樣器】–>【Dubbo Sample】
    在這裏插入圖片描述
    Dubbo Sample界面如下:
    在這裏插入圖片描述

各參數說明如下:

註冊協議Protocol none:爲直連方式
zookeeper:使用zk註冊中心
multicast:廣播方式
redis:使用redis註冊中心
simple:使用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 異常重試次數(類似這種分佈式服務通信框架,大多都有重試機制,是爲了保證事務成功率),不包括第一次調用,不需要重試請設爲0
Cluster 集羣類型,可選:failover/failfast/failsafe/failback/forking
Group 服務分組,當一個接口有多個實現,可以用分組區分,必須和服務提供方一致
Connections 連接數,同上,根據配置填寫
Async 服務處理類型,包括sync(同步)、async(異步),根據配置填寫
Loadbalance 負載均衡策略,包括random(隨機)、roundrobin(輪詢)、leastactive(最少活躍數)、consistenthash(一致性哈希)
Interface 接口名(因爲dubbo服務大多是開發根據規範自行命名的,因此這裏需要填寫完整的接口名+包名)
Method 當前接口下的方法名,按照開發提供的API文檔填寫即可
Args 接口報文,根據API文檔填寫,如上圖所示,添加輸入行,輸入對應的參數類型和值即可(參數類型和值如何定義填寫,請參考上面的鏈接)
paramType 參數支持任何類型,包裝類直接使用java.lang下的包裝類,小類型使用:int、float、shot、double、long、byte、boolean、char,自定義類使用類完全名稱
paramValue 基礎包裝類和基礎小類型直接使用值,例如:int爲1,boolean爲true等,自定義類與List或者Map等使用json格式數據
  1. 參考如上參數說明,按照被測服務信息進行配置。例:配置zk註冊中心地址,填寫被測服務接口名稱及方法名,配置參數類型並填寫參數取值。正確配置好後,可以正常調用並添加監聽器查看返回。

補充:

  • 空參
  • 簡單參數對照表
  • 複雜參數對照表
  • 若參數、服務等配置正確但仍返回不如預期,請檢查對應環境的註冊中心、被測服務是否正常,或者服務版本是否支持反向兼容。
  • 由於 JMeter Plugin 的限制,目前 Dubbo 的壓測請求是通過泛化調用進行發送的,會有一定程度的性能下降,所以在實際評估 Dubbo 接口性能時,接口實際性能會比壓測結果更加樂觀。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章