1.先安裝JDK
安裝包直接從官網(wǎng)下載章贞,直接用wget命令下載的文件默認(rèn)沒(méi)有同意協(xié)議动漾。所以需要手動(dòng)下載创译,最好下載一個(gè)低版本的比較穩(wěn)定
2.解壓:
將下載完成的文件解壓
命令: tar -zxvf 文件名
3.配置環(huán)境變量:
命令: vim /etc/profile
注意:記得更換成自己的文件路徑
輸入 i 進(jìn)入編輯模式
在最后添加如下:
export JMETER_HOME=/usr/local/apache-jmeter-5.1.1
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
完成后:
Esc鍵 輸入::wq
添加完成之后刷新配置:
source /etc/proflie
4.檢查是否安裝完成java環(huán)境
java -version
5.下載jmeter安裝包并解壓
zip使用 unzip 解壓侄非。如果不行可使用 jar xvf 解壓
tgz 使用tar -zvxf 解壓
6.配置jmter環(huán)境變量:
vim /etc/profile
輸入 i 進(jìn)入編輯模式
在最后添加如下:記得更換自己的文件名和路徑
export JMETER_HOME=/iflytek/jmeter/apache-jmeter-5.0
export PATH=$JMETER_HOME/bin:$PATH
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
完成后:
ESC鍵 輸入::wq
添加完成之后刷新配置:
source /etc/proflie
7.檢查是否安裝成功:
jmeter --version
8.執(zhí)行一個(gè)jmeter文件:
將windows準(zhǔn)備好的jmeter腳本.jmx 放入liunx路徑
執(zhí)行:jmeter -n -t test.jmx -l result.jtl
-n 在非GUI模式(減少系統(tǒng)資源的消耗)下運(yùn)行JMeter
-t 要運(yùn)行的JMeter測(cè)試腳本文件(test.jmx需要執(zhí)行的腳本)
-l 記錄結(jié)果的文件(result.jtl生成結(jié)果的文件
執(zhí)行結(jié)束后jmeter目錄下會(huì)生成result.jtl,將result.jtl復(fù)制到windows系統(tǒng)登淘,打開(kāi)任意監(jiān)聽(tīng)器箫老,選取文件路徑,即可查看結(jié)果
9.開(kāi)始分布式部署:
分布式部署的原理:
Jmeter分布式測(cè)試時(shí)黔州,選擇其中一臺(tái)作為調(diào)度機(jī)(master)耍鬓,其它機(jī)器做為執(zhí)行機(jī)(slave or Agent)。
測(cè)試腳本僅在master上部署即可流妻,執(zhí)行時(shí)牲蜀,master 會(huì)把測(cè)試計(jì)劃發(fā)送到每臺(tái)執(zhí)行機(jī)上,執(zhí)行機(jī)拿到腳本后就開(kāi)始執(zhí)行绅这,執(zhí)行機(jī)執(zhí)行時(shí)不需要啟動(dòng)自己的GUI涣达。
每一臺(tái)jmeter遠(yuǎn)程服務(wù)器都執(zhí)行相同的測(cè)試計(jì)劃,jmeter不會(huì)在執(zhí)行期間做負(fù)載均衡证薇,每一臺(tái)服務(wù)器都會(huì)完整地運(yùn)行測(cè)試計(jì)劃度苔。
注:若腳本中含有參數(shù)化相關(guān)文件,需要將參數(shù)化文件拷貝到每個(gè)執(zhí)行機(jī)浑度,放到對(duì)應(yīng)bin/路徑下
10.修改配置
進(jìn)入調(diào)度機(jī) linux jmeter 的bin目錄下
vim jmeter.properties
修改:
remote_hosts=172.31.7.37:1099, 172.31.7.36:1099(執(zhí)行機(jī)的IP, 多個(gè)執(zhí)行機(jī)用逗號(hào)隔開(kāi))
server.rmi.ssl.disable=true(關(guān)閉SSL傳輸)
進(jìn)入執(zhí)行機(jī) linux jmeter 的bin目錄下
vim jmeter.proprites
修改
server_port=1099
server.rmi.ssl.disable=true(關(guān)閉SSL傳輸)
11,開(kāi)始分布式執(zhí)行:
執(zhí)行機(jī):在bIn文件下啟動(dòng)jemter-server
./jmeter-server
調(diào)度機(jī)上執(zhí)行:
指定ip的方式執(zhí)行:jmeter -n -t test.jmx -R 172.31.7.37,172.31.7.36 -l result1.jtl
執(zhí)行所有執(zhí)行:jmeter -n -t test.jmx -r -l result1.jtl
12.獲取html測(cè)試報(bào)告
載調(diào)度機(jī)執(zhí)行: jmeter -g testReport.jtl -e -o report/ 將測(cè)試報(bào)告放入執(zhí)行路徑下的report文件下
將此文件傳入本地電腦寇窑,直接打開(kāi)可以查看html測(cè)試報(bào)告
問(wèn)題1:
控制機(jī)運(yùn)行jmx腳本時(shí),會(huì)提示如下信息箩张,導(dǎo)致測(cè)試跑不起來(lái):
Waiting for possible shutdown message on port 4445
進(jìn)入目錄/apache-jmeter/bin:
vim jmeter.properties
修改位置:
# If running non-GUI, then JMeter listens on the following port for a shutdown message.
# To disable, set the port to 1000 or less.
#jmeterengine.nongui.port=4445
改為:# To disable, set the port to 0 or less. ---to 后面改為0
問(wèn)題2:
日志中出現(xiàn)too manay open files或者類(lèi)似信息甩骏,需要修改服務(wù)器允許的最大句柄數(shù)、當(dāng)前線(xiàn)程允許的最大句柄數(shù):
A.在/etc/security/limits.conf文件最后加上如下語(yǔ)句:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
B.重啟sshd服務(wù):執(zhí)行 service sshd restart
若不生效先慷,執(zhí)行下述命令:
echo ulimit -n 65535 >>/etc/profile
C饮笛、source /etc/profile #加載修改后的profile
問(wèn)題3:
程序在達(dá)到一定并發(fā)后無(wú)法建立連接,日志中出現(xiàn)大量請(qǐng)求異常论熙,降低壓力后可以重新建立連接福青,服務(wù)恢復(fù)正常,端口號(hào)被占用無(wú)法釋放脓诡,導(dǎo)致無(wú)法連接素跺,需要修改服務(wù)器端口的最大范圍:
在/etc/sysctl.conf文件中添加如下內(nèi)容:
允許使用到的端口范圍
net.ipv4.ip_local_port_range = 1024 65535
附加:
將windows環(huán)境配置為調(diào)度機(jī)
windows解壓后進(jìn)入apache-jmeter-5.1.1/bin下,編輯jmeter.properties;
remote_hosts=192.168.0.12:1099多臺(tái)壓力機(jī)配置多個(gè)即可誉券,中間用英文逗號(hào)隔開(kāi)即可指厌。
server.rmi.ssl.disable=true,否則會(huì)報(bào)如下的錯(cuò)誤踊跟。
配置成功后即可遠(yuǎn)程啟動(dòng)執(zhí)行jmeter腳本踩验。
打開(kāi)jmeter鸥诽,點(diǎn)擊運(yùn)行-運(yùn)行程序,可以選擇ip執(zhí)行箕憾。也可直接執(zhí)行所有(執(zhí)行機(jī)要啟動(dòng)服務(wù))
總結(jié):完成上面的步驟牡借,就完成了jmeter分布式壓測(cè)的環(huán)境配置∠欤基礎(chǔ)知識(shí)只能滿(mǎn)足你60%的學(xué)習(xí)需求钠龙,剩下的40%就要在實(shí)戰(zhàn)中補(bǔ)足,我要做的就是補(bǔ)充你剩下的40%御铃。OK碴里,這次分享就到這里了,有什么疑問(wèn)可以隨時(shí)留言溝通上真,互相學(xué)習(xí)進(jìn)步咬腋!
歡迎加入QQ群:547349021
小提示:群名雖然叫selenium+unittest,但是我們不限任何測(cè)試領(lǐng)域的溝通交流和學(xué)習(xí)睡互,讓我們一起補(bǔ)足缺失的40%吧根竿!