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:1099, :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
歡迎加入 51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ 群: 755431660
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2637515/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 『動善時』JMeter基礎 — 58、JMeter分散式測試JMeter分散式
- Jmeter分散式測試JMeter分散式
- Jmeter系列(39)- Jmeter 分散式測試JMeter分散式
- 『動善時』JMeter基礎 — 59、進行JMeter分散式測試遇到的坑JMeter分散式
- jmeter做分散式壓測時的注意事項JMeter分散式
- 整合測試時 MockMvc 無法注入MockMVC
- Jmeter效能測試:高併發分散式效能測試JMeter分散式
- JMeter分散式壓測/JMeter負載新增/jmeter負載均衡/jmeter Windows系統壓測負載新增JMeter分散式負載Windows
- jmeter分散式no-gui 測試報告JMeter分散式GUI測試報告
- Jmeter Arrivals thread group 在命令列執行時,無法生成測試結果JMeterthread命令列
- jmeter介面效能測試-高併發分散式部署JMeter分散式
- 效能測試工具 jmeter 原始碼剖析:jmeter 分散式壓測啟動過程JMeter原始碼分散式
- 『動善時』JMeter基礎 — 50、使用JMeter測試WebSocket介面JMeterWeb
- 『動善時』JMeter基礎 — 51、使用JMeter測試WebService介面JMeterWeb
- 『動善時』JMeter基礎 — 52、使用JMeter測試Dubbo介面JMeter
- 如何在SPRING中同時管理本地快取和分散式快取? - techblogSpring快取分散式
- jmeter中關聯時,常見表示式JMeter
- linux環境下使用jmeter進行分散式測試LinuxJMeter分散式
- Locust 進行分散式負載測試分散式負載
- [譯] 分散式系統如何從故障中恢復?— 重試、超時和退避分散式
- 分散式Jmeter壓測機的部署分散式JMeter
- jmeter分散式壓測(Linux版本)JMeter分散式Linux
- 效能測試:分散式測試分散式
- jmeter學習指南之分散式測試的來龍去脈JMeter分散式
- 『動善時』JMeter基礎 — 37、將JMeter測試結果寫入ExcelJMeterExcel
- 分散式系統2:分散式系統中的時鐘分散式
- 『動善時』JMeter基礎 — 48、使用JMeter自身代理錄製測試指令碼JMeter指令碼
- 如何評估測試工時?
- 『動善時』JMeter基礎 — 60、固定吞吐量測試JMeter
- 求助:flutter 框架自動化測試時,無法輸入內容Flutter框架
- 當在laravel中開發擴充套件時,如何將本地擴充套件載入進其他laravel專案中進行測試?Laravel套件
- 『動善時』JMeter基礎 — 49、使用JMeter自身代理錄製APP測試指令碼JMeterAPP指令碼
- Golang時間函式及測試函式執行時間案例Golang函式
- jmeter分散式測試報錯Error in rconfigure() method java.lang.ClassCastExceptionJMeter分散式ErrorJavaASTException
- Jmeter下載安裝配置---測試小白JMeter
- 『動善時』JMeter基礎 — 56、JMeter使用命令列模式生成HTML測試報告JMeter命令列模式HTML測試報告
- jmeter分散式實戰JMeter分散式
- 關於頁面載入耗時測試