jmeter接口性能測試-高並發


 
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進程,如果還不行,建議直接重啟機器。

 

 

 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM