Jmeter分布式壓力測試


1、場景

在做性能測試時,單台機器進行壓測可能達不到預期結果。主要原因是單台機器壓到一定程度會出現瓶頸。也有可能單機網卡跟不上造成結果偏差較大。
例如4C8G的window server機器,使用UI方式,最高壓測在1800並發(RT 20ms以內)左右。如果對於XML文件進行解析,更容易吃CPU,並發數會更低。

當單台機器不能支持更大的並發時需要考慮分布式壓力測試。 

2、原理

原理圖如下:

  • Jmeter分布式測試時,選擇其中一台作為調度機(master),其它機器做為執行機(slave)
  • master通過GUI界面啟動slave機器,將jmeter壓測發送給每台啟動的slave
  • slave啟動jmeter-server,獲得腳本后開始執行
  • slave執行完成后將結果傳回給master,master收集整合顯示 

3、注意事項

  1. 關閉防火牆和殺毒軟件,開放端口
$ service firewalld stop
$ service iptables stop

  2.所有機器最好在同一個子網上

    可以使用ping命令進行檢查

3.所有機器中最好使用相同版本的jdk和jmeter

4.禁用SSL

 如果在啟動jmeter-server.bat 時出現如下錯誤,則SSL沒有禁用

 

   禁用方法,jmeter.properties文件下查找server.rmi.ssl.disable,取消注釋,並將其值修改為true:server.rmi.ssl.disable=true     

 

4、slave配置

在slave機器中,啟動bin目錄下的 jmeter-server.bat,如下圖:

啟動后的ip和port為:192.168.10.131:50043

當然啟動時端口也是可以自定義的。
在slave機器的 Jmeter的bin目錄下,修改jmeter.properties文件下的server_port和server.rmi.localport兩個配置項。比如修改為1000:
server_port=4444
server.rmi.localport=4444

啟動后的ip和port為:192.168.10.131:4444 

5、master配置

在master機器的 Jmeter的bin目錄下,修改jmeter.properties文件下的remote_hosts項,添加IP和port,多台slave的情況下,使用逗號(,)進行分割。

完成配置后啟動master機器上的 jmeter。
在Run>>Remote Start下可以查看配置的remote_hosts項。

  

注意:如果jmeter已經啟動,修改jmeter.properties文件后需要重啟jmeter配置項才可以生效。

6、腳本執行
新建一個線程組,線程組下添加一個debug sampler調試采樣器和一個樹結構監聽器
將debug sampler重新命名為:${__machineIP()} ,該函數的意思是獲取執行機器的ip

通過菜單欄的開始按鈕運行腳本

通過 Run>>Remote Start>>192.168.10.131:4444運行腳本

 

如果要同時在所有的 slave 機器上運行,則通過 Run>>Remote Start All 執行腳本


 

注意:
在分布式執行中,master向slave發送測試計划時不會將外部文件一起發送。所以在測試中如果使用csv等外部文件進行參數化,則需要把參數文件在每台slave上拷貝一份,最好都放置在bin目錄下,因為Jmeter會直接從bin目錄下查找。

 


免責聲明!

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



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