jmeter性能測試部署(Linux)


 

 

Linuxjmeter性能測試

1.1 環境配置

1.1.1 環境准備

整個測試過程中,測試環境為Windows系統和linux系統兩部分,Windows環境下調試和配置需要運行的jmeter腳本,在linux系統中開始性能測試過程。

Linux安裝CentOS 7系統,並在系統中安裝好java環境,此次測試中,配置的java為java 1.8.0_211。

 

 

 

 

1.1.2 測試軟件准備

測試中准備apache-jmeter-5.0版本jmeter進行測試。

為保證腳本設置和腳本運行時沒有差異,Windows和Linux環境使用同一個版本的jmeter,也避免測試過程中因測試工具版本不兼容,出現異常。

 

1.2 jmeter集群配置

1.2.1 單台jmeter設置

jmeter包拷貝至linux指定位置並解壓(tar –zxvf 壓縮包名稱),開始配置jmeter。

1.配置環境變量

打開/etc/profile,進入文件最后添加jmeter環境配置,如下圖紅色橫線所示,路徑為Jmeter包存放位置。(可進入jmeter的bin目錄下,輸入pwd命令查看對應位置)

 

 

 

配置完成后,保存此配置文件,執行命令source /etc/profile讓配置生效。此時在輸入命令:jmeter –v可查看對應的jmeter版本信息。

Jmeter要配環境變量,這樣不用手動起server,如果不配置環境變量,每次啟動時都需要進入到對應的bin目錄下進行操作。

2. Jmeter內存調優

壓測過程中jmeter報內存溢出(報錯:java.lang.OutOfMemoryError:gc overhead limit exceeded),或在測試過程中因jmeter自身內存限制,影響測試結果,在測試前可調整jmeter內存。

查看bin目錄下jmeter文件(此次使用的版本,內存設置在jmeter文件中,也有在jmeter.sh/jmeter.bat文件中),修改HEAP=-Xms512m -Xmx1024m對應數值。此處對應的參數意義為:

-Xms:初始值

-Xmx:最大值

-Xmn:最小值

Heap Size的設置不宜太小,也不宜太大。若設置太小程序的響應速度會變慢了,因為GC占用了更多的時間,而應用分配到的執行時間較少。太大也會造成空間的浪費,而且也會影響其他程序的正常運行,Heap Size 最大最好不要超過可用物理內存的80%。建議將-Xms和-Xmx選項設置為相同。

根據實際情況,在此次過程中將此數值設置為4096m。

 

1.2.2 Jmeter集群配置

Jmeter 支持分布式壓測,將需要模擬的大量並發用戶數分發到多台壓力機,使 Jmeter 擁有更大的負載量,滿足真實業務場景(高並發場景)。

Jmeter分布式配置主要分為master端修改和slave端修改。設置前請確認,master端和slave端要ping通。

先對slave端進行配置。

1.進入 jmeter.properties文件,查找並取消這段配置的注釋 server.rmi.ssl.disable=false ,false改成true。

 

 

 

2.進入jmeter-server文件(也有版本在jmeter.properties文件中),查找 jmeter-server -Djava.rmi.server.hostname=xx.xx.xx.xx 設置slave節點IP(即當前slave機ip),這里設置的IP也是啟動slave上的jmeter服務的IP,如果啟動時顯示的信息與此不符,請確認是否是多網卡或設置虛擬IP的原因。

 

 

 

3. 當默認的1099端口被占用或需要修改對應端口值時,進入 jmeter.properties文件,查找server.rmi.localport和server_port,並取消注釋,將值修改為1099,固定分布式啟動監聽端口。此次測試將端口都設置在了1099.

 

Slave端設置完成后,在master端添加已設置好的slave機IP和端口信息。

進入master機的jmeter.properties文件,查找修改remote_hosts=ip:port:改成要啟動的Linux機的ip以及端口。

例如:

 

 

 

多個slave機之間,使用逗號分隔開。

設置完成后,可能會遇到打不開的權限問題,此時:chmod 777 filename ,更改文件權限,然后再重新就可以打開了

1.2.3 Jmeter集群啟動

設置完slave機和master機,先在slave機啟動服務。

執行./jmeter-server -Djava.rmi.sever.hostname=IP(slave機IP)完成slave機啟動。如下,啟動10.30.20.71的Slave機,當出現以下提示信息時,slave機正常啟動,等待master機的調用。

 

 

 

 

slave機啟動后,master機執行語句:./bin/jmeter.sh -n -t ./xxxx.jmx -R 10.30.20.71  -l ./result/result.jtl -e -o ./report 即可調用此slave機。

 

master機啟動slave機進行測試時,slave機下出現提示信息:

 

 

 

master機出現信息和執行數據:

 

 

 

腳本運行完成時,master機同樣出現tydying up…腳本執行完成,開始整理報告數據,出現…end of run報告整理完成。

在腳本執行完成時,slave出現下列提示信息:

Finishing the test on host 10.30.20.71 @ Mon Oct 19 18:26:23 CST 2020 (1603103183123)。

1.3 Jmeter腳本設置

此次設置,為滿足測試要求,使用Stepping Thread Group插件進行設置。安裝好此插件,並對此插件進行設置,每一項設置參數含義如下:

 

This group will start 100 threads:設置線程組啟動的線程總數為100個;

 

First,wait for N seconds:啟動第一個線程之前,需要等待N秒;

 

Then start N threads:設置最開始時啟動N個線程;

 

Next,add 10 threads every 30 seconds,using ramp-up 5 seconds:每隔30秒,啟動10個線程,10個線程在5秒內啟動完成;

 

Then hold load for 60 seconds:啟動的線程總數達到最大值之后,再持續運行60秒;

 

Finally,stop 5 threads every 1 seconds:每秒停止5個線程;

 

 

 

此插件按一般線程組一樣進行接口和控制器設置,開始腳本調試和設置,設置后調整上述參數即可開始測試。

1.4 Jmeter測試

再運行腳本之前,檢查文件路徑,需要再jmeter下建立一個report和一個result路徑,以便在測試過程中指定測試結果和測試報告存放地址。每次進行測試時,這兩個路徑下應該為空,否則不能正常進行測試。

將設置好的腳本,xxx.jmx文件,傳到已配置的linux環境jmeter目錄下,執行命令語句。

Jmeter官網用戶手冊介紹如下:

 

-h, –help -> prints usage information and exit

-n, –nongui -> run JMeter in nongui mode

-t, –testfile <argument> -> the jmeter test(.jmx) file to run

-l, –logfile <argument> -> the file to log samples to

-r, –runremote -> Start remote servers (as defined in remote_hosts)

-H, –proxyHost <argument> -> Set a proxy server for JMeter to use

-P, –proxyPort <argument> -> Set proxy server port for JMeter to use

 

具體的含義如下:

-h 幫助 -> 打印出有用的信息並退出;

 

-n 非 GUI 模式 -> 在非 GUI 模式下運行 Jmeter;

 

-t 測試文件 -> 要運行的 JMeter 測試腳本文件;

 

-l 日志文件 -> 記錄結果的文件;

 

-r 遠程執行 -> 在Jmter.properties文件中指定的所有遠程服務器;

 

-H 代理主機 -> 設置 JMeter 使用的代理主機;

 

-P 代理端口 -> 設置 JMeter 使用的代理主機的端口號;

 

根據實際情況選擇,執行語句時使用的命令。

1.5 Jmeter報告查看

 

當測試完成之后,自動生成報告,報告指定在report路徑下,測試結果保存在result路徑下。此時將report整個打包tar –cvf report.rar report),打包完成之后將打包文件傳到windows環境中進行查看。


免責聲明!

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



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