1. 程式人生 > >jmeter介面效能測試-高併發分散式部署

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