Docker部署nGrinder性能測試平臺(tái)過程解析
什么是nGrinder?
nGrinder是用于壓力測試的平臺(tái),使您可以同時(shí)執(zhí)行腳本創(chuàng)建,測試執(zhí)行,監(jiān)視和結(jié)果報(bào)告生成器。開源nGrinder通過消除不便并提供集成環(huán)境,提供了進(jìn)行壓力測試的簡便方法。它是根據(jù)Apache許可版本2.0許可的,是基于Grinder的開源的web性能測試平臺(tái),由韓國最大互聯(lián)網(wǎng)公司NHN公司的開發(fā)團(tuán)隊(duì)進(jìn)行了重新設(shè)計(jì)和完善。
http://naver.github.io/ngrinder/
nGrinder由三個(gè)組件組成
controller:一個(gè)Web應(yīng)用程序,使性能測試人員可以創(chuàng)建測試腳本并配置測試相關(guān)參數(shù),自動(dòng)分發(fā)測試腳本到agent。
agent:在代理服務(wù)器上加載運(yùn)行測試進(jìn)程和線程,建議不要部署在被測試的服務(wù)器上。
Monitor:用于監(jiān)控被測服務(wù)器的系統(tǒng)性能(例如:CPU/MEMORY),必須部署在被測試服務(wù)器上。
nGrinder架構(gòu)
工作原理
由一個(gè)控制端controller和多個(gè)代理端agent組成,通過控制端(瀏覽器訪問)建立測試場景,然后分發(fā)到代理端進(jìn)行壓力測試。用戶按照一定規(guī)范編寫測試腳本,controller會(huì)將腳本以及需要的資源分發(fā)到agent,用jython執(zhí)行。在腳本執(zhí)行的過程中收集運(yùn)行情況、相應(yīng)時(shí)間、測試目標(biāo)服務(wù)器的運(yùn)行情況等。并且保存這些數(shù)據(jù)生成測試報(bào)告,通過動(dòng)態(tài)圖和數(shù)據(jù)表的形式展示出來。用戶可以方便的看到TPS、被測服務(wù)器的CPU和內(nèi)存等情況。部署方式
1、單Controller多agent
2、多Controller和多agent
Docker上運(yùn)行nGrinder
運(yùn)行controller
docker pull ngrinder/controllerdocker run -d -v ~/ngrinder-controller:/opt/ngrinder-controller --name controller -p 80:80 -p 16001:16001 -p 12000-12009:12000-12009 ngrinder/controller
控制器在/ opt / ngrinder-controller下創(chuàng)建一個(gè)數(shù)據(jù)文件夾,以維護(hù)測試歷史記錄和配置數(shù)據(jù)。為了持久地保留數(shù)據(jù),您應(yīng)該將容器上的文件夾/ opt / ngrinder-controller映射到主機(jī)上的文件夾。
端口信息:
80:默認(rèn)控制器Web UI端口。
9010-9019:代理通過這些端口連接到控制器集群。
12000-12029:控制器通過這些端口分配壓力測試。
運(yùn)行agent
docker pull ngrinder/agentdocker run -d --name agent --link controller:controller ngrinder/agent
docker-compose快速部署
使用docker-compose服務(wù)編排裝一個(gè)Controller和兩個(gè)agent:
編寫yml
vim docker-compose.yml
ngrinder-controller-1: image: ngrinder/controller container_name: ngrinder-controller-1 hostname: ngrinder-controller-1 ports: - 8087:80 - 16001:16001 - 12000-12009:12000-12009 volumes: - /data/ngrinder/controller-1:/opt/ngrinder-controllerngrinder-agent-1: image: ngrinder/agent container_name: ngrinder-agent-1 hostname: ngrinder-agent-1 volumes: - /data/ngrinder/agent-1:/opt/ngrinder-agent command: - 10.255.254.25:8087ngrinder-agent-2: image: ngrinder/agent container_name: ngrinder-agent-2 hostname: ngrinder-agent-2 volumes: - /data/ngrinder/agent-2:/opt/ngrinder-agent command: - 10.255.254.25:8087
啟動(dòng)
docker-compose -f docker-compose.yml -d up
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP常用日期格式化函數(shù) FormatDate()2. python中@contextmanager實(shí)例用法3. Python 操作 MySQL數(shù)據(jù)庫4. 開發(fā)效率翻倍的Web API使用技巧5. bootstrap select2 動(dòng)態(tài)從后臺(tái)Ajax動(dòng)態(tài)獲取數(shù)據(jù)的代碼6. CSS3中Transition屬性詳解以及示例分享7. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼8. 基于selenium及python實(shí)現(xiàn)下拉選項(xiàng)定位select9. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式10. python 如何在 Matplotlib 中繪制垂直線
