目錄
引言
windows環(huán)境部署
1.安裝環(huán)境變量
2.配置環(huán)境變量
3.修改Jmeter配置文件
4.啟動jmeter
5.啟動分布式服務
Linux環(huán)境部署
1.安裝JDK+Jmeter
2.環(huán)境優(yōu)化
4.編寫Jmeter腳本
5.啟動Jmeter
6.停止Jmeter
7.打包查看測試報告
引言
您想要提高您的應用程序的性能嗎?想要確保它在高負載下仍然能夠正常工作嗎?那么,您一定需要一個可靠的性能測試工具來幫助您完成這個任務。
JMeter是一個廣泛使用的性能測試工具,但是如果您的測試需求變得更加復雜和龐大,那么單機運行可能無法滿足您的需求。那么有沒有一種方法可以提高測試效率呢?
當然有!搭建JMeter分布式壓測環(huán)境是一個明智的選擇。通過增加多臺計算機節(jié)點,您可以將測試負載分散到不同的計算機上,從而有效地提高測試效率,并且節(jié)省大量時間和精力。
在本篇文章中,我們將為您詳細介紹如何搭建JMeter分布式壓測環(huán)境,并分享一些實用的技巧和經(jīng)驗,助您輕松應對壓力山大的測試任務。讓我們開始吧!
windows環(huán)境部署
1.安裝環(huán)境變量
下載JDK,可以在oracle官網(wǎng)下載
2.配置環(huán)境變量
將下載下來的JDk進行安裝,添加JAVA_HOME 填寫JDK存放路徑(根據(jù)自己路徑進行填寫),如C:\Program Files\Java\jdk1.8.0_202
?
添加JMETER_HOME 填寫Jmeter存放路徑(根據(jù)自己路徑進行填寫),如D:\辦公\3.軟件\jmeter5.1+java1.8\apache-jmeter-5.1.1
?
添加CLASSPATH,將下面內(nèi)容加在最后
;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar
?
添加Path,將下面內(nèi)容加在最后
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
%JMETER_HOME%\bin
?
3.修改Jmeter配置文件
進入Jmeter配置文件中D:/**/apache-jmeter-5.3/bin/jmeter.properties
server.rmi.ssl.disable=true ?????# 將false改成true,去掉前面#號
?
添加發(fā)壓機(這一步是添加使用Jmeter分布式需要啟動的發(fā)壓機,IP+端口):
remote_hosts=xxx.168.xxxx.2:1099,xxxx.168.xxx.3:1099,xxxx.168.xx.4:1099
?
4.啟動jmeter
?
Jmeter工具使用請看下面文章:Jmeter壓測工具入門篇
5.啟動分布式服務
在slave機(發(fā)壓機)上啟動客戶端jmeter-server.bat
?
如下圖看到slave已經(jīng)啟動。
?
slave機啟動后,在master選擇 運行,遠程啟動/遠程啟動所有,就可以分布式的多臺slave機一起壓測了。
?
Linux環(huán)境部署
1.安裝JDK+Jmeter
安裝jmeter之前需要先安裝jdk,下載jdk(可以使用下面地址進行下載,也可以去官網(wǎng)下載,官網(wǎng)需要登錄oracle)
鏈接: https://pan.baidu.com/s/1Gu5pwMxyxGxN3X94E5NKYg?pwd=ai6j
(內(nèi)網(wǎng)部署只需要手動把JDK和Jmter包上傳到內(nèi)網(wǎng)解壓,其余步驟不變)
解壓jdk,這里安裝到/usr/local/java/目錄(安裝路徑根據(jù)個人喜好,但要和環(huán)境變量中的地址匹配)
tar -zxvf jdk-8u181-linux-x64.tar.gz
配置環(huán)境變量,修改配置文件vi /etc/profile
,文本最后加上以下內(nèi)容
JAVA_HOME=/usr/local/java/jdk1.8.0_181
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
使環(huán)境變量生效
source /etc/profile
驗證jdk配置成功
java -version
?
使用命令直接安裝Jmeter
wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz
如果是內(nèi)網(wǎng)環(huán)境,需要手動上傳Jmeter安裝包,下載最新版Jmeter
解壓jmeter,這里安裝到/usr/local目錄(安裝路徑根據(jù)個人喜好,但要和環(huán)境變量中的地址匹配)
tar -zxf apache-jmeter-5.4.3.tgz
建立腳本目錄:/root/jmeter/scripts,#腳本上傳的地址
建立報告目錄:/root/jmeter/report,#報告生成存放目錄
配置jmeter環(huán)境變量,vi /etc/profile
,文本最后加上以下內(nèi)容
export JMETER_HOME=/usr/local/apache-jmeter-5.4.3
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH
使環(huán)境變量生效
source /etc/profile
驗證jmeter配置成功
jmeter --version
?
2.環(huán)境優(yōu)化
1.配置jmeter的使用內(nèi)存,根據(jù)實際服務器和測試需求量來修改,最大為服務器內(nèi)存的一半
vi /usr/local/apache-jmeter-5.4.3/bin/jmeter
?
2.優(yōu)化linux內(nèi)存參數(shù),修改limits.conf文件:
vi /etc/security/limits.conf
最后添加(不同操作系統(tǒng)可能不一樣,下面為centos):
* soft nofile 102400
* hard nofile 102400
* soft nproc 65535
* hard nproc 65535
重新打開SSH終端,執(zhí)行如下命令查看是否生效
ulimit -n
?
3.修改Linux內(nèi)核參數(shù),修改/etc/sysctl.conf文件:
vi /etc/sysctl.conf
并添加以下內(nèi)容:
net.ipv4.tcp_syncookies = 0
fs.file-max = 12553500
fs.nr_open = 12453500
kernel.shmall= 1048576
kernel.shmmax = 1887436
kernel.msgmax = 65536
kernel.sysrq = 0
kernel.pid_max= 65536
net.core.netdev_max_backlog = 2000000
net.core.rmem_default = 699040
net.core.rmem_max = 50331648
net.core.wmem_default = 131072
net.core.wmem_max = 33554432
net.core.somaxconn = 65535
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_mem = 1048576 1572864 2097152
net.ipv4.tcp_rmem = 4096 4194304 8388608
net.ipv4.tcp_wmem = 4096 4194304 8388608
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_window_scaling = 1
vm.swappiness = 0
#TCP connection recovery
net.ipv4.tcp_max_tw_buckets = 6000000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.route.max_size = 5242880
net.ipv4.ip_forward = 1
#0表示不開啟檢查時間錯,建議設置0
net.ipv4.tcp_timestamps = 0
#開啟對于TCP時間戳的支持,若該項設置為0,則下面一項設置不起作用
#TCP connection manager
net.ipv4.tcp_max_syn_backlog = 655360
net.ipv4.tcp_syn_retries = 6
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 6
#TCP keepalive
net.ipv4.ip_local_port_range = 1025 65534
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
輸入下面的命令,讓內(nèi)核參數(shù)生效:
sysctl -p
3.修改Jmeter配置文件
進入Jmeter配置文件中D:/**/apache-jmeter-5.3/bin/jmeter.properties
server.rmi.ssl.disable=true ?????# 將false改成true,去掉前面#號
?
添加負載機(這一步是添加使用Jmeter分布式需要啟動的負載機,IP+端口):
remote_hosts=xxx.168.xxxx.2:1099,xxxx.168.xxx.3:1099,xxxx.168.xx.4:1099
?
4.編寫Jmeter腳本
通過Windows把要壓測的Jmeter腳本調(diào)試完成,保存為****.jmx文件,上傳到Linux服務。
5.啟動Jmeter
1)先分別啟動slave(所有壓測機)上的服務,命令如下(多網(wǎng)卡需要指定ip)
nohup jmeter-server -Djava.rmi.server.hostname=172.168.xxx.2 & #壓測機IP
2)啟動master,執(zhí)行以下命令啟動jmeter
jmeter -r -n -t ***.jmx -l test.jtl
參數(shù)說明:
-n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter
-t 測試文件 -> 要運行的 JMeter 測試腳本文件
-l 日志文件 -> 記錄結(jié)果的文件
-r 代表全部agent啟動并參與測試
3)如果要啟動指定發(fā)壓機,執(zhí)行以下命令
jmeter -n -t ***.jmx -l test.jtl -R xxxx.168.xx,xxxx.168.xx,xxxx.168.xx
參數(shù)說明:
-n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter
-t 測試文件 -> 要運行的 JMeter 測試腳本文件
-l 日志文件 -> 記錄結(jié)果的文件
-R 指定的agent啟動并參與測試
6.停止Jmeter
進入到JMeter 的 bin 目錄下,輸入 ./shutdown.sh
命令停止腳本
注:如果在分布式壓測過程中,想要終止壓測,千萬不要在Linux上按 ctrl + c 強制終止程序,這樣會知道主程序掛了之后,從機未接受到執(zhí)行,會一直持續(xù)運行。當你再次從主機上運行腳本,從機仍然會在上一個腳本的程序中運行,這時需要去殺掉進程。
7.打包查看測試報告
將linux下的report打包成zip,然后導出到windows下查看index.html測試報告
?
?
?文章來源地址http://www.zghlxwxcb.cn/news/detail-464735.html
寫在最后
這篇貼子到這里就結(jié)束了,最后,希望看這篇帖子的朋友能夠有所收獲。
都到這了記得三連支持一下吧。
-------------------------------------------------
完整版文檔下載方式:
這些資料,對于從事【軟件測試】的朋友來說應該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!以上均可以分享。
??
在評論區(qū)和我互動交流或者私?我【軟件測試學習】領取即可,拿走不謝。文章來源:http://www.zghlxwxcb.cn/news/detail-464735.html
?
到了這里,關(guān)于壓力山大?搭建JMeter分布式壓測環(huán)境輕松應對!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!