被问到了!为什么一定要使用分布式,内行啊
一、為什么要使用分布式
如果需求要測試 4000 虛擬用戶數(shù),而本機(jī)只能支持1000 虛擬用戶,如果測試結(jié)果有可能是電腦的問題,而不是服務(wù)器的問題,所以需要把其他虛擬用戶分配到多臺電腦上
把虛擬用戶數(shù)分配到其他電腦上面去執(zhí)行,執(zhí)行結(jié)束后,在主電腦上查看執(zhí)行結(jié)果就可以
二、什么是分布式測試
分布式測試是指通過局域網(wǎng)和Internet,把分布于不同地點(diǎn)、獨(dú)立完成特定功能的測試計算機(jī)連接起來,以達(dá)到測試資源共享、分散操作、集中管理、協(xié)同工作、負(fù)載均衡、測試過程監(jiān)控等目的的計算機(jī)網(wǎng)絡(luò)測試
三、執(zhí)行原理
對分布式測試而言,測試過程是一種對流程控制要求很高的活動,因此系統(tǒng)需要適時地獲取全局狀態(tài)以正確地指導(dǎo)流程;其次,在測試過程中,系統(tǒng)要能夠方便地監(jiān)視和操縱測試過程。因此,分布式測試系統(tǒng)適合采用集中式的分布式策略,即由一臺中心計算機(jī)控制若干臺受控計算機(jī)的執(zhí)行,整個測試過程和資源管理由中心來完成,它掌握整個分布式測試環(huán)境的狀態(tài),從而發(fā)出控制命令
選擇其中一臺作為Master機(jī)(調(diào)度機(jī)),其他機(jī)器作為Slave機(jī)(執(zhí)行機(jī))
執(zhí)行時,Master機(jī)會把腳本發(fā)送到每臺Slave機(jī)上,Slave機(jī)拿到腳本后就開始執(zhí)行,不需要啟動GUI
執(zhí)行完成后,Slave機(jī)會把結(jié)果回傳給Master機(jī),Master機(jī)會收集所有Slave機(jī)的信息,并匯總
四、分布式配置
前提條件:要保持一致性
- Slave機(jī)器的jdk版本需要跟Master機(jī)器的 jdk 版本保持一致:java -version
- Slave機(jī)器的Jmeter版本以及插件需要跟Master機(jī)器保持一致,操作方法是直接將Master的Jmeter安裝目錄打包后解壓- 到Slave機(jī)器上
- Slave機(jī)器的網(wǎng)絡(luò)需要跟Master機(jī)器的網(wǎng)絡(luò)保持在同一個局域網(wǎng),可以 ping 通
1.Master主機(jī)器配置
在Jmeter的%JMETER_HOME%\bin目錄下,使用文本編輯工具打開jmeter.properties配置文件,配置以下參數(shù)
remote_hosts=Slave機(jī)器IP:端口 多臺Slave機(jī)器則用英文逗號隔開,查看IP地址ipconfig server.rmi.ssl.disable=true 大約336行 mode=Standard 開啟標(biāo)準(zhǔn)模式(可以看到日志記錄)758行配置完成后重啟Jmeter2.Slave助攻機(jī)器配置
在Jmeter的%JMETER_HOME%\bin目錄下,使用文本編輯工具打開jmeter.properties配置文件,配置以下參數(shù)
#第263、297、334行//加入Java開發(fā)交流君樣:756584822一起吹水聊天 server_port=1234 server.rmi.port=1234 server.rmi.ssl.disable=true 去掉認(rèn)證開始 > 搜索“windows防火墻” > 左側(cè)選擇“打開或關(guān)閉windows防火墻” > 選擇“關(guān)閉windows防火墻(不推薦)”
如果是linux機(jī)器上,則要給bin目錄賦予執(zhí)行的權(quán)限:chmod +x -R bin/,防火墻有些操作系統(tǒng)也需要提前關(guān)閉:systemctl stop firewalld.service
3、連接機(jī)器
配置完成,檢查防火墻也關(guān)閉后,在Slave機(jī)器的Jmeter的%JMETER_HOME%\bin目錄下,輸入cmd進(jìn)入命令行模式
//加入Java開發(fā)交流君樣:756584822一起吹水聊天
在命令行下開啟Jmeter遠(yuǎn)程服務(wù):jmeter-server.bat -Djava.rmi.server.hostname=本機(jī)IP,如果是linux機(jī)器,命令為:sh jmeter-server.sh -Djava.rmi.server.hostname=本機(jī)IP
我們在Master主機(jī)器上,打開cmd終端命令行,使用“telnet IP 端口”的命令驗(yàn)證是否接通
如上面顯示則表示已經(jīng)接通,可以開始進(jìn)行分布式性能測試了
五、執(zhí)行測試
分布式測試的場景,Master機(jī)器上只發(fā)送指令并收集測試結(jié)果,多臺Slave機(jī)器執(zhí)行Master機(jī)器發(fā)送的指令,并且Master機(jī)器上設(shè)定的并發(fā)用戶數(shù)在每臺Slave機(jī)器上執(zhí)行的并發(fā)用戶數(shù)保持一致,總的并發(fā)用戶數(shù)=并發(fā)用戶數(shù)*n(Slave機(jī)器個數(shù))
在Master機(jī)器上重新打開Jmeter的GUI界面,點(diǎn)擊:運(yùn)行—遠(yuǎn)程啟動—Slave機(jī)器
因?yàn)橘Y源有限,只使用了一臺Slave機(jī)器
我們可以看到Slave機(jī)器上打印了相應(yīng)的日志,則說明分布式場景配置成功:
查看日志:
進(jìn)入服務(wù)器 Tomcat 目錄下,執(zhí)行cd logs/ 進(jìn)入,進(jìn)入后執(zhí)行tail -f catalina.out 查看壓力測試的實(shí)時日志[
最后,祝大家早日學(xué)有所成,拿到滿意offer
總結(jié)
以上是生活随笔為你收集整理的被问到了!为什么一定要使用分布式,内行啊的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试官问:你做过什么Java线程池实践,
- 下一篇: 2021年度最全面JVM虚拟机,类加载过