nGrinder是基於Grinder開源項目,但由NHN公司的nGrinder開發團隊進行了從新設計和完善(因此叫作nGrinder)。html
它是由一個controller和鏈接它的多個agent組成,用戶能夠經過web界面管理和控制測試,以及查看測試報告,controller會把測試分發到一個或多個agent去執行。用戶能夠設置使用多個進程和線程來併發的執行該腳本,並且在同一線程中,來重複不斷的執行測試腳本,來模擬不少併發用戶。python
nGrinder的測試是基於一個python的測試腳本,用戶按照必定規則編寫測試腳本之後,controller會將腳本以及須要的其餘文件分發到agent,用Jython執行。並在執行過程當中收集運行狀況、響應時間、測試目標服務器的運行狀況等。並保存這些數據生成運行報告,以供之後查看。linux
JMeterweb
Tsung瀏覽器
Locusttomcat
Loadrunnerbash
nGrinder服務器
綜上能夠看出nGrindr仍是有不少優點的。架構
nGrinder 由兩個主要的組件組成:併發
Controller:
提供性能測試的web接口。
Agent:
在代理服務器上加載運行測試進程和線程
當 agent 啓動時,它們試圖鏈接到 controller,而後他們都附屬在 AgentControllerServer 組件上。AgentControllerServer (能夠看作爲一個 agent 的池)管理當前 agent 池。每當用戶開始性能測試時,一個新的 console 被建立,同時由 AgentControllerServer 提供所需數量的 agent。 SingleConsole (不是 Grinder 中的 Console ) 發送測試腳本和測試源碼到多個指定的 agent , 同時開始控制測試流,直到測試結束。當測試完成後,所使用的 agents 歸還給 AgentControllerServer ,以便在之後的其餘測試中使用。 一樣,SingleConsole 也會歸還給 ConsoleManager 。
nGrinder 和 Grinder 最大的區別在於 nGrinder 在 controller 中保持多個 console 實例 和 agent 。每一個 console 都是獨立的,全部 console 均可以同時運行。每當有須要時,許多 agent 能夠提早被提早關聯和分配。與 grinder 不一樣,nGrinder 最大化 agent 機器的利用率。
http://ngrinder.642.n7.nabble.com/ngrinder-user-cn-f114.html
3臺linux服務器:
nGrinder是一個web應用(Controller)和Java應用(Agent, Monitor)的組合,須要安裝JDK 1.6或更高的版本。
nGrinder須要用到不少端口
Agent : Any ==> Controller : 16001
目前最新的版本是ngrinder3.4.1
建議使用tomcat,把war包放在tomcat的webapps文件夾下便可.
JAVA_OPTS=」-Xms600m -Xmx1024m -XX:MaxPermSize=200m」
啓動後,打開瀏覽器訪問http://localhost:8080/ngrinder-controller-X.X
我這裏問:http://192.168.42.164:8080/ngrinder-controller-3.4.1/login,登陸名/密碼:admin/admin
agent在controller頁面中直接下載
由於使用的是admin賬號登陸,下載的agents包中的配置能夠分享給全部的用戶使用。
下載後,把agent放在服務器上,解壓
啓動前檢查 ulimt -a ,調整配置讓其運行更多的線程,執行bash run_agent.sh 啓動agent。
nGrinder的Monitor是agent的一個子集,用於收集系統相關數據(好比CPU, MEM and Network)
agent在controller頁面中直接下載
下載後,把monitor放在服務器上,解壓
執行bash run_monitor.sh啓動monitor
nGrinder運行一個壓力測試只需3步:
編寫測試腳本
場景設計:配置併發用戶數,執行時間,資源監控
場景執行,結束後自動生成報告
這裏測試一個簡單的get請求:http://192.168.42.32:82/sourcing/tradeservice/quotation-request.html
登陸ngrinder,輸入url,點擊開始測試
填寫相應場景信息,如併發用戶數,場景執行時間等
點擊保存並運行按鈕,開始場景執行
原文連接:http://tonylit.me/2017/03/23/ngrinder介紹與安裝/