1. 程式人生 > >Jmeter 在linux下的分散式壓測

Jmeter 在linux下的分散式壓測

Jmeter 在linux下的分散式壓測

0、將 windows機器作為master 控制機(同時也兼做負載機slave), linux機器作為 負載機 slave。

1、linux環境安裝 :
(1)、在linux(centos)下需要安裝JDK (1.8) 和 JMETER (5.0)
jdk檔案為:jdk-8u131-linux-i586.tar.gz

jmeter 檔案為(跟windows下的是同樣的檔案,本身是java編寫,跨平臺):apache-jmeter-5.0.zip(2)、在linux的root目錄下新建lsq目錄,將jdk、jmeter安裝檔案拷貝到linux的 /root/lsq/目錄下

(3)、解壓jdk、 jmeter (解壓即安裝)到當前目錄
#cd /root/lsq
#jar -xzvf jdk-8u131-linux-i586.tar.gz
#unzip apache-jmeter-5.0.zip

(4)、修改環境變數
#vi /etc/profile
新增這幾行(路徑根據實際情況修改):

JAVA_HOME=/root/lsq/jdk1.8.0_131
JRE_HOME=$JAVA_HOME/jre
JMETER_HOME=/root/lsq/apache-jmeter-5.0
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JMETER_HOME/bin/

修改之後執行 source /etc/profile  讓配置生效
#source /etc/profile 

驗證jdk 安裝是否成功,能出現java版本說明安裝成功
#java -version

驗證jmeter安裝是否成功
#jmeter -v

 2、分散式環境配置:
#cd /root/lsq/apache-jmeter-5.0/bin
#vi jmeter.properties
修改 jmeter bin目錄下的jmeter.properties 檔案,修改
remote_hosts 的ip 127.0.0.1 為機器ip
也可以修改埠 server_port 為一個未被使用的埠,如下圖所示:

 

 


同時jmeter 4.0以上還有修改jmeter.properties檔案的另外一個ssl的項 ,把false改為 true:
server.rmi.ssl.disable=true  

修改完成 ,slave端要啟動 jmeter服務 :
#jmeter-server

此時,發現報錯:

 

 

 迴環地址的問題 ,只改 jmeter-server下的(儘量不要去改 系統級的配置 比如/etc/hosts的ip ): 

 

修改後儲存,再次啟動 jmeter-server ,成功,如下圖:

 

 

 

 

另外:預設情況下,RMI使用動態埠(比如上圖的58040)為JMeter伺服器引擎。 這可能會導致問題,比如被防火牆遮蔽, 所以您可以定義JMeter屬性 server.rmi.localport控制這個埠號,沒有防火牆的問題,則不需要改

 

 

3、master端(windows)配置,
同樣修改 jmeter bin目錄下的jmeter.properties 檔案中的配置,
remote_hosts=slaveip1:埠1,slaveip2:埠2 ,如果master不想參加壓測,可以把127.0.0.1 去掉
如: remote_hosts=127.0.0.1:2099,192.168.123.86:2099
server_port 改成你想要的埠,
如: server_port=2099

 

 


修改server.rmi.ssl.disable=true(flase改為true)

4、配置完成   ,開啟windows下的jmeter,能看到 執行--》遠端啟動 裡,有我們設定的 負載機的ip和埠

 

 

 

5、windows 控制機自己作為 負載機也要開啟 jmeter-server.bat 如下圖:

 

 

6、執行 壓測:

使用報表前先修改Jmeter的bin目錄下reportgenerator.properties
修改jmeter.reportgenerator.overall_granularity=1000(報表統計的間隔時間,預設是60000毫秒即分鐘,改成1秒)

F:\srcipt\Jmeter>jmeter -n -t .\day7-bugfree.jmx -l day75.jtl -e -o .\res15 -j .\log\15.log -R 192.168.123.86

 

 

7、其它說明:

  1、排程機(master)和執行機(slave)最好分開,由於master需要傳送資訊給slave並且會接收slave回傳回來的測試資料,所以mater自身會有消耗,所以建議單獨用一臺機器作為mater。

  2、引數檔案:如果使用csv進行引數化,那麼需要把引數檔案在每臺slave上拷一份且路徑需要設定成一樣的,比如都放置在bin目錄下 。注意:不同的負載機引數化資料要不一致,否則會重複資料。!!!

  3、每臺機器上安裝的Jmeter版本和外掛最好都一致,否則會出一些意外的問題。