jmeter學習指南之分散式測試的來龍去脈
使用Jmeter分散式測試的背景
一、使用Jmeter分散式測試的背景:
1、GUI、非GUI的區別
首先,我們知道Jmeter有兩種執行方式,GUI、非GUI。
GUI:在Windows系統上執行,圖形化介面,方便檢視測試結果,但是消耗壓力機資源較高,容易卡死,有併發限制。
非GUI:透過命令列執行,無圖形化介面,不方便檢視測試結果,但是消耗壓力機資源較低,可以支援較大併發。
2、GUI、非GUI遇到的問題
Jmeter是基於java程式執行的,在windows上使用Jmeter進行效能測試時,非常耗費客戶機的CPU和記憶體,如果併發數稍微大一點(比如100、1000...併發),單臺電腦的配置經常無法支援,很容易卡死,即使不卡死也會使電腦執行很慢,導致我們沒辦法進行其它操作。
透過cmd命令列,或者是在Linux上使用Jmeter進行效能測試時,能夠大大縮減所需要的系統資源;但是需要將jmeter指令碼上傳到Linux上使用命令列方式執行,如果指令碼經常改動就要頻繁上傳;測試完成後要把結果資料下載到本地GUI環境中檢視,當結果檔案較大時,下載要花費大量時間,總是有很多不方便。
3、如何解決?
以上問題,都可以使用Jmeter的分散式測試功能來解決:
透過Jmeter遠端啟動功能,把一臺windows機器做為控制器,遠端控制其它多個windows或linux壓力機,從而把壓力分散到多臺機器上,實現高併發功能;並在master上收集測試結果。
jmeter分散式原理
二、jmeter分散式原理
jmeter的分散式控制,說的通俗一點,就是指遠端啟動功能,具體原理如下圖:
1、客戶端機器(window系統)作為一個控制器controller,控制多臺slave機器的操作。
2、Controller和slave機器上最好裝有相同版本的jdk和jmeter,並配置好環境變數,安裝和配置方法跟windows環境類似。
3、controller透過GUI介面啟動slave機器,將jmeter壓測指令碼傳送給每臺啟動的slave,slave獲得指令碼後開始執行。slave本地不需預先儲存指令碼,但是需要有指令碼中的依賴檔案(如csv檔案等)。
4、各臺slave執行完成後,將結果傳回給controller,controller收集後整合顯示出來。
jmeter分散式配置
三、jmeter分散式(遠端啟動)配置
1、slave遠端機配置
slave遠端機需安裝jdk和jmeter,最好與controller上的版本保持一致,無法滿足時至少保證slave上的jmeter能正常執行(如jmeter3.0以後需要jdk1.7及以上版本)。
啟動salve機的jmeter-server
在slave的%JMETER_HOME%bin目錄下執行./jmeter-server命令啟動jmeter服務,啟動成功如下圖:
修改slave機jmeter預設埠
上圖紅框中的ip為slave機的ip地址,紅框中的埠號port為啟動 jmeter服務監聽的port,一般會有個預設埠號1099,但最好自定義,確保埠號不衝突。修改方法如下:
在slave機器的%JMETER_HOME%bin目錄下找到jmeter.properties,修改檔案中server_port和server.rmi.localport,即可自定義埠號:
server_port=1029
server.rmi.localport=1029
注意這兩項必須同時修改,且一樣。
修改後執行slave的jmeter-server即可看到控制檯訊息中修改是否生效;
2、控制機controller配置
在控制機上要保證執行命令能傳送到遠端slave機,需要在控制機上配置遠端機的ip地址和port。
在控制機jmeter安裝目錄的bin資料夾下,找到jmeter.properties,修改配置如下圖,其中ip和port即為上一步slave的ip和port,如上圖中jmeter-server啟動時紅框中顯示的內容。多個slave機器的配置可透過逗號分隔。
remote_hosts=10.165.124.6:1029
若要新增多個slave機,重複上面的步驟即可。
3、遠端啟動和停止
配置完成後開啟控制機jmeter的GUI介面,在執行-遠端啟動中即可看到自己配置的slave機器。
新增一個指令碼,點選遠端啟動即可啟動執行slave機器,此時在slave機上可看到控制檯資訊,在控制機透過監聽器-聚合報告或察看結果樹可看到執行結果。
同樣的,也可以進行遠端停止操作:
需要注意的問題:
1、修改配置檔案後必須重啟jmeter才能生效
2、在控制機上遠端啟動之前,必須先執行slave機的jmeter-server.bat
3、當jmeter指令碼中需要依賴csv等資料檔案時,該檔案需上傳至slave機,並需要設定正確的路徑。
4、先配置一個slave機成功後,再依次配置多個slave機
5、當slave機是linux系統時,一般只配置一個slave機即可,除非併發特別大時,才需要配置多個slave.
6、分散式執行時,總併發數是指令碼中設定的執行緒數 * slave機的個數,如執行緒數設定為10,使用3個slave機執行,則總併發數是30.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2654371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Jmeter系列(39)- Jmeter 分散式測試JMeter分散式
- jmeter學習指南之常用函式的使用JMeter函式
- 從GAN到WGAN的來龍去脈
- [原始碼解析]Oozie來龍去脈之提交任務原始碼
- Alink漫談(四) : 模型的來龍去脈模型
- 關於View中mParent的來龍去脈View
- jmeter學習指南之管理CookiesJMeterCookie
- jmeter學習指南之關聯JMeter
- [原始碼解析]Oozie來龍去脈之內部執行原始碼
- Jmeter效能測試:高併發分散式效能測試JMeter分散式
- Android效能最佳化來龍去脈Android
- 『動善時』JMeter基礎 — 58、JMeter分散式測試JMeter分散式
- jmeter分散式no-gui 測試報告JMeter分散式GUI測試報告
- AI晶片行業發展的來龍去脈AI晶片行業
- 『MySQL』深入理解事務的來龍去脈MySql
- Linux 程式編譯過程的來龍去脈Linux編譯
- jmeter學習指南之聚合報告JMeter
- Android效能優化來龍去脈總結Android優化
- 一文搞清楚 DNS 的來龍去脈DNS
- 【Javascript】淺析JS中閉包的來龍去脈JavaScriptJS
- jmeter學習指南之詳解jmeter執行緒組JMeter執行緒
- TensorFlow學習指南四、分散式分散式
- jmeter學習指南之Beanshell Sampler 常用方法JMeterBean
- jmeter學習指南之Boundary Extractor和正規表示式提取器JMeter
- jmeter介面效能測試-高併發分散式部署JMeter分散式
- 分散式Jmeter壓測機的部署分散式JMeter
- 效能測試工具 jmeter 原始碼剖析:jmeter 分散式壓測啟動過程JMeter原始碼分散式
- 『動善時』JMeter基礎 — 59、進行JMeter分散式測試遇到的坑JMeter分散式
- jmeter學習指南之操作 mysql 資料庫JMeterMySql資料庫
- HMM隱馬爾可夫模型來龍去脈(二)HMM隱馬爾可夫模型
- jmeter分散式壓測(Linux版本)JMeter分散式Linux
- linux環境下使用jmeter進行分散式測試LinuxJMeter分散式
- 一文講透CabloyJS全棧框架的來龍去脈JS全棧框架
- Cosmos 是什麼? 一文了解Cosmos的來龍去脈
- 敲開遊戲引擎的大門,聊聊引擎的來龍去脈遊戲引擎
- jmeter之效能測試JMeter
- jmeter學習指南之原始碼匯入 IntelliJ IDEAJMeter原始碼IntelliJIdea
- jmeter學習指南之OOM和監聽器使用JMeterOOM