JMeter 介紹
JMeter 是 Apache 組織基於 Java 開發的一款開源的性能測試工具。它最初被設計用於 Web 應用測試,但後來擴展到其他測試領域,並可以在 Windows、Mac、Linux 環境下安裝使用。JMeter 還提供了圖形界面,這使得編寫測試用例變得非常簡單,具有易學和易操作的特點。
- JMeter 官網:http://jmeter.apache.org/download_jmeter.cgi
前置準備:
- 下載安裝配置jmeter
- 安裝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
- 將jar包放入${JMETER_HOME}\lib\ext路徑下,重啓jmeter
操作步驟:
- 創建線程組
在“測試計劃”上右鍵 【添加】–>【線程(用戶)】–>【線程組】
- 增加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格式數據 |
- 參考如上參數說明,按照被測服務信息進行配置。例:配置zk註冊中心地址,填寫被測服務接口名稱及方法名,配置參數類型並填寫參數取值。正確配置好後,可以正常調用並添加監聽器查看返回。
補充: