Ngrinder(效能測試工具)-(一)
一、ngrinder介紹
nGrinder 是基於Grinder開源專案,由NHN公司的開發團隊進行了重新設計和完善。
nGrinder 是一款非常易用,有簡潔友好的使用者介面 和 controller-agent分散式結構的強大的壓力測試工具,能夠執行效能測試和監控目標伺服器,並生成結果。
在ngrinder 3.x版本開始,支援多使用者併發測試。目前是3.5.x版本。可以通過錄制方式,生成jython和groovy語言的指令碼。也可以,自己編寫,匯入進來
指令碼語言:jpthon(python+java) groovy(java衍生)
官方網站:https://naver.github.io/ngrinder/
最新發布版本:https://github.com/naver/ngrinder/releases
二、ngrinder特點
(1)一款非常易用
(2)web管理臺介面
(3)controller-agent代理可以實現分散式結構
(4)ngrinder理論上,虛擬使用者數是無限,官方說法,在4g記憶體時,可以支援 4k併發使用者數
(5)執行效能測試+目標伺服器監控
三、ngrinder 組成
ngrinder 主要由三部分組成:控制器Controller、代理agent、監聽器monitor:
1、Controller控制器:
(1)提供web管理介面;
(2)讓使用者建立、修改指令碼,
(3)維護效能測試場景,執行效能測試,
(4)整理和顯示測試統計資料。
(5)管理Agent
(6)對外服務的埠:預設8080
(7)內部服務埠:預設為16001
(8)Controller的服務埠,要看具體啟動方式,如果採用tomcat,則服務埠為8080。
(9)ControllerServer埠預設為16001,Agent代理啟動時,會自動請求連線該埠。
2、Agent代理:
(1)代理==助攻機器==壓力機
(2)agent是不能安裝在被測伺服器上
(3)服務埠:12000~12029
(4)使用程序或執行緒模式執行效能測試。
(5)在執行效能測試時,會開啟12000~12029區間的埠。
3、監聽器monitor:
(1)監視被測伺服器資源使用情況
(2)需要安裝在被測伺服器上
(3)監視目標伺服器資源使用情況,常被部署在目標伺服器上。預設埠13243。
四、ngrinder工作原理
圖中數字表示含義:
0:Controller控制器和Agent代理,啟動後保持連線;
1:使用者在控制器中發起效能測試請求;
2:Controller控制器就會去獲取控制檯資訊;
3:再去獲取代理。服務資訊;
4:確定具體的代理伺服器資訊;
5:然後控制檯就會向代理服務分發效能指令碼與場景,進行效能測試;
6:向被測伺服器發起請求,同時監聽器監聽被測伺服器資源使用情況;
概述:
(1)它由 一個Controller 和 與它相連的 多個 Agent 組成。使用者通過web介面管理和控制測試,以及檢視測試報告。
(2)Controller 會把測試分發到 每個Agent上去執行,使用者可以在web管理介面中,設定 多個使用 多個執行緒 或 程序來併發的執行指令碼。
(3)nGrinder的指令碼是python語言寫的。Controller把這些指令碼分發到各個Agent中,然後用Jython來執行。並在執行的過程中,收集執行情況、響應時間、測試目標伺服器的執行情況等,並儲存資料生成報告。