您好,登錄后才能下訂單哦!
本篇內容介紹了“JMeter中本地無法承載時怎么辦”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
對于并發量很大的需求,如上萬并發量,受到CPU和內存的限制,單機模擬場景是實現不了的,為了讓JMeter提供更大的負載能力,須使用它的分布式機制,即多臺機器同時產生負載的功能。
特點:
1.真實的性能測試,不存在網絡瓶頸問題
2.GUI僅限windows平臺,命令行可在linux與windows
3.測試結果保存在本地一臺master上
4.使用這臺master管理多個Jmeter Engines,也叫做slave
5.測試腳本會被master自動發送到作為負載生成器的slave,但數據文件不會
在進行分布式平臺測試的時候,要最好注意以下幾點:
1.master也可以同時作slave,但要注意負載適量
2.所有負載生成器slave上安裝相同的jmeter與jdk
3.防火墻和殺毒軟件要關閉或過濾
4.確保所有master與slave在同一個網段或子網,沒有網絡延遲
5.master與slave可以是windows或linux,不必全部是同一個OS,但要開放防火墻,否則connect fail
6.腳本使用的數據文件(比如CSV)需要單獨傳到每個slave,并且腳本中指定的文件路徑要能夠在每個slave找到該文件,常使用相對路徑,較方便
7. 確保jmeter可以訪問服務器
8. 確保各個jmeter版本一致,不同版本可能會存在協同問題
一、Jmeter分布式執行原理:
1、Jmeter分布式測試時,選擇其中一臺作為調度機(master),其它機器做為執行機(slave)。
2、執行時,master會把腳本發送到每臺slave上,slave 拿到腳本后就開始執行,slave執行時不需要啟動GUI,我理解它應該是通過命令行模式執行的。
3、執行完成后,slave會把結果回傳給master,master會收集所有slave的信息并匯總。
一、執行機(slave)配置:
1、slave機上需要安裝Jmeter 和 支持當前Jmeter版本的JDK。(有時在運行Jmeter時會提示JDK版本過低)
2、添加環境變量:JMETER_HOME路徑為bin目錄的上一級目錄,這樣啟動jmeter-server服務時,就只會看到Found ApacheJMeter_core.jar
3、啟動bin目錄下的:jmeter-server.bat,啟動成功如下圖。(jmeter 的安裝路徑不要包含空格,因為jmeter-server.bat不支持含空格的文件夾路徑。)
4、上圖上標紅的IP和端口會在master里配置時用到。IP就是slave機器IP,端口默認是1099,端口也可以自定義,這里我自定義為1000。
5、多臺slave的話,重復1~4步驟就好。
三、調度機(master)配置:
1、腳本:簡單的一個訪問百度的腳本:
2、打開Jmeter的bin目錄下jmeter.properties文件,修改如下配置IP和Port是slaver機的IP以及默認的1099端口,一下兩種配置方法都可以。
remote_hosts=172.16.xx.xx, http://172.16.xx.xxx
remote_hosts=172.16.xx.xx:1099, http://172.16.xx.xxx:1099
多臺slave之前用 "," 隔開。
修改如下配置,這里端口我自定義為100:
remote_hosts=10.13.223.202:1000,10.13.225.12:1000
我這配置了2臺,可以看到標紅的這個就是上面截圖slave的IP和Port.
3、打開Jmeter,選擇運行,有運程啟動、運程全部啟動兩個選項:
4、選擇遠程啟動-->10.13.225.12:1000
a) master結果,這里我只啟動了10.13.225.12:1000這一臺slave,所以只有一個結果(線程數和循環次數都是1):
b) slave控制臺信息:
5、選擇遠程啟動-->遠程全部啟動:
a) master結果,全部啟動,我配置了2臺slave,所以有兩次執行結果:
四、自定義端口:
如何自定義slave端口:
1、slave:在slave機的Jmeter的bin目錄下,找到jmeter.properties文件,修改如下兩個配置項,比如我這里修改為9999:
server_port=9999
server.rmi.localport=9999
2、啟動slave機上的jmeter-server.bat端口已經修改為:9999
3、master:修改master機器的jmeter.properties文件:
remote_hosts
4、重啟jmeter.bat
五、其它說明:
1、調度機(master)和執行機(slave)最好分開,由于master需要發送信息給slave并且會接收slave回傳回來的測試數據,所以mater自身會有消耗,所以建議單獨用一臺機器作為mater。
2、參數文件:如果使用csv進行參數化,那么需要把參數文件在每臺slave上拷一份且路徑需要設置成一樣的,Filename這里設定一下。
3、每臺機器上安裝的Jmeter版本和插件最好都一致,否則會出一些意外的問題。
4、如果想要master也分擔負載,讓master自身也執行測試計劃,需要把master 的 IP 和 端口也寫到配置文件里,在遠程啟動前,也要把master的 jmeter-server.bat運行,這樣master也能和其他slave一起執行測試計劃了。
六、比較
與LoadRunner的異同:
1.都可以實現分布式負載,各有優劣
2.都支持windows和linux下的slave,但master,jmeter跨平臺,LR不
3.LR可以指定每個slave生成不同數量的并發用戶,jmeter不可
4.jmeter中測試計劃使用的數據文件不會隨腳本發送到slave,而LR可以通過選擇納入LR管理一起發送到遠端slave
“JMeter中本地無法承載時怎么辦”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。