新聞中心
聊聊JMeter分布式壓測部署
作者:大鑫筆記 2022-01-17 09:18:28
開發(fā)
前端
分布式 使用JMeter開展性能測試,當(dāng)單臺(tái)機(jī)器無法滿足性能壓測的負(fù)載要求時(shí),或者單臺(tái)機(jī)器的網(wǎng)絡(luò)帶寬存在瓶頸的情況下,可以采用分布式部署的方案來解決這些問題。

創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)四川電信科技城機(jī)房報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
使用JMeter開展性能測試,當(dāng)單臺(tái)機(jī)器無法滿足性能壓測的負(fù)載要求時(shí),或者單臺(tái)機(jī)器的網(wǎng)絡(luò)帶寬存在瓶頸的情況下,可以采用分布式部署的方案來解決這些問題。
JMeter分布式部署方案中,需要一臺(tái)作為控制節(jié)點(diǎn)(Master),其余節(jié)點(diǎn)作為執(zhí)行機(jī)(Slave)??刂乒?jié)點(diǎn)負(fù)責(zé)向執(zhí)行機(jī)發(fā)送指令和展示結(jié)果,執(zhí)行機(jī)負(fù)責(zé)產(chǎn)生負(fù)載和向控制節(jié)點(diǎn)返回結(jié)果。
JMeter分布式環(huán)境部署
示例環(huán)境規(guī)劃:
- 控制機(jī):windows系統(tǒng),Master節(jié)點(diǎn),ip=192.168.2.5;
- 執(zhí)行機(jī):CentOS系統(tǒng),Slave節(jié)點(diǎn),ip=192.168.2.15;
1. 前提條件
- Master、Slave使用相同的JMeter版本;Master、Slave使用相同的JAVA版本;
- Master、Slave節(jié)點(diǎn):創(chuàng)建有效的keystore文件或者禁用ssl,這里選擇直接禁用ssl。編輯JMETER_HOME/bin/jmeter.properties設(shè)置server.rmi.ssl.disable=true。
如果需要開啟ssl,請(qǐng)參考Apache JMeter - User's Manual: Remote (Distributed) Testing中的13.1 Setting up SSL章節(jié)進(jìn)行配置。
2. 執(zhí)行機(jī)節(jié)點(diǎn)(Slave)配置
- 設(shè)置rmi.server.hostname,編輯JMETER_HOME/bin/jmeter-server,取消MI_HOST_DEF項(xiàng)的默認(rèn)注釋并修改hostname為本機(jī)的IP地址
- MI_HOST_DEF=-Djava.rmi.server.hostname=192.168.2.15
推薦設(shè)置此項(xiàng),否則可能運(yùn)行jmeter-server會(huì)出現(xiàn)下面的錯(cuò)誤:
- ./jmeter-server
- Server failed to start: java.rmi.RemoteException: Cannot start.
- localhost.localdomain is a loopback address.
- An error occurred: Cannot start. localhost.localdomain is a loopback
- address.
執(zhí)行JMETER_HOME/bin/jmeter-server啟用服務(wù),如果打印如下的信息表示啟動(dòng)成功
3. 控制節(jié)點(diǎn)(Master)配置
- 指定Slave節(jié)點(diǎn),編輯JMETER_HOME/bin/jmeter.properties,將remote_hosts設(shè)置為Slave節(jié)點(diǎn)的IP地址,如果有多臺(tái)Slave節(jié)點(diǎn),以逗號(hào)分隔多個(gè)IP地址;
- remote_hosts=192.168.2.15
remote_hosts不需要指定端口號(hào),JMeter會(huì)自動(dòng)進(jìn)行探測
- 多網(wǎng)卡情況,如果Master節(jié)點(diǎn)有多網(wǎng)卡(如安裝了虛擬機(jī)就會(huì)有個(gè)網(wǎng)卡,示例就是在windows機(jī)器上安裝了CentOS虛擬機(jī)作為Slave,就是多網(wǎng)卡的情況),JMeter會(huì)選擇任意網(wǎng)卡嘗試與Slave節(jié)點(diǎn)建立連接,如果選擇錯(cuò)誤的網(wǎng)卡將無法建立連接。需要通過明確指定IP的方式來解決多網(wǎng)卡的問題,編輯JMETER_HOME/bin/jmeter.bat,在下圖中標(biāo)記的位置添加如下兩條語句,其中server.hostname設(shè)置為可以與Slave連接的IP地址;
- set rmi_host=-Djava.rmi.server.hostname=192.168.2.5
- set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
4. 遠(yuǎn)程測試調(diào)測
步驟3設(shè)置完成后,重啟JMeter,打開要壓測的腳本文件,運(yùn)行/遠(yuǎn)程啟動(dòng)菜單出現(xiàn)了Slave節(jié)點(diǎn)的IP,點(diǎn)擊Slave節(jié)點(diǎn)IP地址就會(huì)發(fā)起遠(yuǎn)程節(jié)點(diǎn)的測試。
默認(rèn)情況下,遠(yuǎn)程節(jié)點(diǎn)測試可以通過匯總報(bào)告、聚合報(bào)告來查看調(diào)測結(jié)果,查
看結(jié)果樹不會(huì)顯示響應(yīng)數(shù)據(jù),主要是Master節(jié)點(diǎn)為了減少數(shù)據(jù)傳輸?shù)拈_銷,如
果需要顯示可以通過取消注釋
JMETER_HOME/bin/jmeter.properties文件中
的mode=Standard來達(dá)到目的。
Slave節(jié)點(diǎn)也會(huì)打印響應(yīng)的連接信息
JMeter分布式壓測執(zhí)行正式執(zhí)行壓測時(shí),JMeter官方推薦在非GUI模式下運(yùn)行,可以節(jié)省部分運(yùn)行資源,執(zhí)行如下命令啟動(dòng)壓測
- jmeter -n -t 分布式測試示例.jmx -l report_01.jtl -e -o report_01
- 參數(shù)說明:
- -n 表示非GUI模式
- -t 表示指定腳本文件,可以使用相對(duì)和絕對(duì)路徑方式指定
- -l 表示指定結(jié)果記錄的文件,文件格式為.jtl
- -e 表示測試完成即生成報(bào)告
- -o 指定報(bào)告生成的目錄
壓測期間會(huì)持續(xù)打印匯總信息,可以看到執(zhí)行了多久,響應(yīng)時(shí)間、錯(cuò)誤率、線程數(shù)等情況
壓測結(jié)束后會(huì)在參數(shù)指定的目錄下生成html格式的測試報(bào)告
網(wǎng)站標(biāo)題:聊聊JMeter分布式壓測部署
網(wǎng)站鏈接:http://m.5511xx.com/article/codhooe.html


咨詢
建站咨詢
