Linux 環境下搭建Jmeter集群(六)


一、為什么要搭建集群?

    主要原因單台服務器沒有辦法滿足系統的壓力,通過多台服務器來緩解壓力。

二、Jmeter 分布式原理 

  1.JMeter 分布式測試,選擇節點來做調度服務器,其他的節點作為執行節點,通過調度節點管理其他節點;

  2.啟動服務時,調度服務器會把腳本發送到各個執行節點(腳本會發送到執行節點,但是數據不會發送),執行節點拿到腳本開始執行命令;

  3.各個執行節點執行結束以后將結果回傳給調度節點,調度節點進行數據匯總;

  原理圖:

 

三、環境搭建

  1、每個節點安裝Jmeter。

  2、進入Jmeter 調度節點(Jmeter  Controller )bin目錄,編輯meter.properties

jmeter.properties文件中搜索關鍵字remote_hosts,來添加Slave 節點的IP,默認Jmeter Server的端口是1099,如果需要修改取消server_port注釋進行修改

注意:
    如果你想Controller節點也參與施壓,remote_host 內容需要添加本機地址

  3.編輯Salve 節點jmeter-server文件,將服務器的主機IP設置為固定值

 

 

   4.啟動所有參與請求的節點jmeter-server,進入bin目錄啟動

./jmeter-server

注意:

  1.如果你的Controller節點參與了請求,此時jmeter-server也需要啟動;
  2.執行的腳本進行文件參數化,此時需要存放在jmeter-server啟動的相對位置路徑,而不是你腳本存儲的相對路徑,首先執行的時候,Controller節點會對腳本下發,他會下發到jmeter-server啟動的路徑,而不是你腳本存放的路徑

 

   此時將Jmeter的分布式集群搭建完成,剩下的就是來運行測試腳本了

  5.運行測試腳本

  •  啟動所有Slave節點(添加參數-r)
 jmeter -n -t osg-uus服務目標ping接口.jmx -l result/17-1-200-1/testResult.jtl  -e -o result/17-1-200-1 -r
  • 啟動指定Slave節點
 jmeter -n -t osg-uus服務目標ping接口.jmx -l result/17-1-200-1/testResult.jtl  -e -o result/17-1-200-1 -R 172.29.64.11

  

 6.Jmeter 命令介紹

參數 解釋
-n 非 GUI 模式 
-t 運行的 JMeter 測試腳本文件
-l 指定記錄結果的文件
-r 啟動所有Slave節點
-R 指定啟動Slave節點,多個節點通過,分隔

 四、遇見的坑

  由於壓測的過程由於需要改變網絡環境,但是服務器域名映射依然是舊地址,在遠程請求的過程中無法連通,導致分析很久,最好將hostname映射關系添加在hosts文件避免這樣的錯誤

其實很早想記錄下Jmeter集群搭建,也不知道什么理由一直拖到了現在,疫情期間在家辦公,也不知道啥時候上班啥時候下班,趁着孩子睡覺,記錄下。


免責聲明!

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



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