jmeter介面效能測試-高併發分散式部署
阿新 • • 發佈:2020-12-19
jmeter什麼要做分散式部署?
jmeter是執行在JVM虛擬機器上的,當模擬大量併發時,對執行機器的效能/網路負載會很大。
此時就需要使用jmeter的分散式部署功能,實現多臺被控機器同時併發訪問被測系統。
原理圖:
準備工作:
1.在所有機器上,安裝相同版本的jmeter和JDK。
2.所有機器連線同一個網路。
3.把所有機器的防火牆關閉,否則很可能會連線失敗。
步驟1:
修改master控制端:
1.修改master控制端的jmeter的bin目錄下的jmeter.properties檔案。
如圖,在remote_hosts處新增負載機的IP+埠。
在server_port處新增本機伺服器IP埠(如果控制端不作為負載機,可不新增)。
2.找到server.rmi.ssl.disable,把註釋去掉,把false改為true。
步驟2: 修改slave負載機端: 1.與控制端一樣,修改remote_hosts與server_port的IP埠。 該IP+埠就是之前新增在控制端remote_hosts裡面的值。
2.同樣找到server.rmi.ssl.disable,把註釋去掉,把false改為true。
步驟3: 負載機啟動server 所有slave負載機,在jmeter的bin目錄下,開啟jmeter-server.bat檔案;
步驟4: 啟動控制端master,執行效能測試。 這裡為了演示,直接啟動控制端的GUI(實際測試時需要使用命令列執行,下一步會講到)。 在Run的Remote Start中,可以看到之前在控制端配置的IP,代表可選擇的負載機。 執行Remote Start All,則會執行之前在控制端jmeter.properties檔案中配置的所有虛擬機器。
執行成功後,負載機的命令列會顯示執行成功資訊。
執行成功後,在控制端GUI的聚合報告可檢視到執行結果。
步驟5: 使用命令列執行壓力測試; 這很多人使用jmeter進行併發測試時,容易忽略了的一點: 在雙擊jmeter.bat檔案啟動GUI時,命令列已經提示,GUI僅適用於除錯,不可用於負載測試。
如提示語,開啟CMD命令列,輸入如下: jmeter -n -t [指令碼路徑] -l [結果檔案路徑] -e -n [web報告路徑] 例如,筆者輸入: jmeter -n -t C:\Users\user\Desktop\jmeterPerf.jmx -R 192.168.1.128:2088,192.168.1.114:2099 -lC:\Users\user\Desktop\jmeter\ result.txt -e -o C:\Users\user\Desktop\jmeter\webreport
使用命令列執行完併發效能測試後,即可在填寫的路徑下開啟報告檢視。
可能存在的報錯: 1. Connection refused:connect 可能是防火牆未關閉,把控制機和負載機的防火牆都關閉即可。
2. Connection timed out 連線超時,可能機器未在同一個區域網,或者填寫的IP埠錯誤。 檢查是否IP+埠是否正確,檢查負載機的server_port是否設定,是否存在衝突被佔用。
3.Engine is busy 可能是異常退出等,導致被控負載機一直執行之前的測試,未釋放程序。 可以嘗試關閉負載機的java.exe程序,如果還不行,建議直接重啟機器。