A. 下載jmeter並安裝,http://jmeter.apache.org/download_jmeter.cgi(文中使用的版本是3.3,理論上高版本也沒問題)。java
B. 到github下載最新jmeter plugin包 https://github.com/ningyu1/jmeter-plugins-dubbo/tree/master/dist,請選擇不帶依賴包的版本(由於做者的dubbo版本是2.5.3,以及其餘的包版本都與公司的不同),例如jmeter-plugins-dubbo-1.3.2-SNAPSHOT.jar。而後獲取如下依賴包git
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安裝目錄下的lib/ext。github
B. 運行jmeter圖形程序,如圖添加線程組,不進行壓測的話,默認就是1個線程調用1次dubbo接口apache
C. 如圖添加dubbo sample,並添加察看結果樹json
D. 在dubbo sample中配置註冊中心設置(協議以及地址)、provider相關信息(interface、method、參數)api
注:maven
1. args參數須要配置參數類型以及參數值,若是是對象等複雜參數,用json來設置值。而且須要提供參數類型,對應表以下:ide
2. register settings區域的protocal能夠是zk也能夠是simple,後者表示直連方式,能夠脫離zk使用。工具
E. 配置好dubbo sample後,就能夠運行jmeter來調用dubbo了,點擊如圖按鈕測試
F. 返回結果要在以前添加的察看結果樹獲得,每一次運行都會有一個text產生,點擊響應數據tab頁能夠看到返回實體的json
DevToolBox
優勢:
a. 基於zk和jar包可分析出interface和method;不用手寫,選擇便可,減小出錯
b. 參數被分析成模板,直接填寫
c. 預置2.5.3 2.8.4 dubbo包以及其餘依賴包(並自動分析其餘版本的dubbo包),開箱即用
缺點:
a. 必須依賴zk
b. 必須依賴interface jar包
c. 沒法壓測
d. 須要安裝maven而且有本地倉庫(對QA可能不友好)
功能測試推薦使用DevToolBox 工具,由於總體效率和體驗會更好。
壓測或者是無interface相關包時,則可使用jmeter-plugins-dubbo 。
jmeter-plugins-dubbo
優勢:
a. 不依賴於zk,可直連
b. 基於泛化,不依賴於interface jar包
c. 可用jmeter快捷壓測
缺點: a. 須要手寫參數類型(須要一一對應),複雜對象也要手動構造 b. interface、method都要手寫,對非開發人員不友好,有寫錯風險 c. 須要本身維護jmeter調用dubbo所需jar包,而且要安裝jmeter,沒法作到開箱即用