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