1. 程式人生 > 其它 >Ngrinder(效能測試工具)-(一)

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來執行。並在執行的過程中,收集執行情況、響應時間、測試目標伺服器的執行情況等,並儲存資料生成報告。