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