Jmeter分佈式執行原理:
1、Jmeter分佈式測試時,選擇其中一臺作爲控制機(master),其它機器做爲Agent執行機(slave)。
2、執行時,將命令發送到每臺Agent節點,使用命令行模式執行壓測腳本。
3、執行完成後,Agent會把結果回傳給server,server會收集所有Agent的信息並彙總。
性能測試平臺http://10.20.*.*:8080/renren-fast/index.html
自帶分佈式節點管理,如下圖:
但在其配置分佈式節點中,有幾個需要注意的點。
1.配置一臺slave機
進入usr/local/jmeter/bin 目錄
1)修改jmeter.properties 文件:
將server.rmi.ssl.disable=false註釋,並設置爲true
2)slave機啓動jmeter服務,不啓動服務是無法被調用的
啓動Agent節點,登錄到slave機,進到存放壓測腳本的目錄,執行nohup jmeter-server -Djava.rmi.server.hostname=10.201.7.239 & ,啓動Agent節點
注意:jmeter-server後面指定Agent ip
我們配置的是77,則執行:nohup jmeter-server -Djava.rmi.server.hostname=10.20.16.77 &
2.配置master機
進入usr/local/jmeter/bin 目錄
1)修改jmeter.properties 文件:
將server.rmi.ssl.disable=false註釋,並設置爲true
設置 remote_hosts=10.201.7.239:1099 #代理機ip和端口,多個用","分隔
我們這裏配的是兩臺remote_hosts=10.20.16.65:1099,10.20.16.77:1099,mater機自身如果參與壓測也要進行配置
3.在壓測平臺中配置分佈式節點,與master機jmter.properties中的配置一致
我們這裏有兩臺,則配置兩個
配置完了,測試一下看看!
以啓動首頁腳本爲例:
看一下測試報告:
因執行的腳本是20個併發,循環1000且權重是100,併發數應是40,總請求數應是40000,成功!
4.參數化:
主從機壓測時,如果腳本含有參數化文件如csv,這時需將參數化文件同步到slave機。
方法如下:
找到需要同步的csv文件,點擊同步文件,同步成功後就可以開始壓測了
踩過的坑:
配置好jmeter.properties,要重啓壓測平臺,否則不能連接上啊!
master機如果想要作爲壓測機,也需在壓測平臺的節點管理添加。
注意事項:
爲了減少出錯的可能性,最好按照如下Jmeter 分佈式要求:
1、各個機器在相同目錄下安裝相同版本的jdk;
2、各個機器在相同的目錄下安裝相同版本的jmeter 4.0,因壓測平臺是基於4.0的內核;