ngrinder性能测试工具入门

一、性能测试工具对比

主流的ngrinder性能测试工具:

  • LoadRunner
  • Jmeter
  • nGrinder

1.1 LoadRunner 

  • 优点

基于UI操作,容易上手,功能强大;收费;

  • 缺点

安装包大,安装麻烦;不开源,扩展性不高;不支持平台化;

1.2 Jmeter

  • 优点

基于UI操作,易上手;开源,支持二次开发;

  • 缺点

基于线程运行,支持并发用户小(单节点支持用户数1000+);支持平台化(需要二次开发,例如开源平台MeterSphere);

1.3 nGrinder

  • 优点

单节点支持5000+并发,B/S架构,本身支持平台化访问,不需要安装客户端;开源,可二次开发;

  • 缺点

界面化功能较少(例如参数化),需要通过脚本开发操作,对测试人员代码要求较高;

比较点

JMeter

Ngrinder

LoadRunner

实现语言Javajava/pythonjava/VB/C/.NET
使用方式C/S或CommandB/SC/S
支持分布式master/slave controller/agentmaster/slave
开源方式免费,完全开源免费,完全开源收费
支持协议多种协议多种协议多种协议
资源监控monitor/plugin,如果二开,需要查找plugin的源码monitor方式自带资源监控功能
社区活跃度文档完善有中文社区网上资料和相关培训很多,购买正版还可以得到技术支持
是否需要编码基本不需要需要,Jython/Groovy需要
脚本的维护本地内置SVN,可以修改成git本地
脚本录制可使用BadBoy进行录制可通过PTS插件进行录制自带录制功能
可扩展性可增加plugin,输出结果可以再加工,扩展性强可增加plugin,扩展性强通过扩展函数库实现
安装简单,解压即可简单,可以下载安装包或绿色包解压安装包比较大,安装繁琐
平台化有开源或云端的压测平台本身具备

二、ngrinder简介

官网:nGrinder

2.1 背景

ngrinder是一个基于grinder进行二次开发的性能平台,具有开源、易用、高可用、可扩展等特性,在grinder基础上实现多测试并行,通过web管理,实现了集群分布式测试;同时支持grovvy和jython脚本语言(grovvy性能更好),也实现了对目标服务的监控以及插件的扩展,实现更多虚拟用户并发(4C8G机器能支撑8000+虚拟用户);

2.2 ngrinder三大组件

ngrinder由controller、monitor和agent三大组件组成;

1)Controller

  • 创建用户和脚本
  • 创建测试任务
  • 分发调度负载机执行测试任务
  • 整理和显示测试结果
  • 管理负载机(下载和查看)

2)agent

  • 压测任务的拉取
  • 运行测试进程和线程
  • 监控agent所在服务器的系统性能

3)monitor

  • 监控被测服务器的系统性能

三、nGrinder工作原理

3.1 非集群架构

ngrinder是通过控制台Controller创建测试任务,调度执行机agent执行svn上的测试脚本,向测试目标服务器发起压力,在目标服务器上提前搭建监控器monitor,监控目标服务器的资源使用(CPU、MEM、IO等),并在控制台controller实时展示测试结果,包括处理能力、响应时间、成功率以及目标服务器资源使用等,最终生成测试报告;

 

 

3.2 集群架构

ngrinder从3.1版本开始支持controller集群

 

四、ngrinder环境搭建

ngrinder环境搭建包含controller、agent和monitor3个部分;

4.1 Controller部署

1)依赖环境

2)服务端启动

将war包上传到安装好jdk环境的linux服务器上,执行如下命令,启动controller(war包名字根据下载的文件名填写)

nohup java -XX:MaxPermSize-256m -jar ngrinder-controller-3.5.8.war --port 8080 >output 2>&1 &

服务启动好后,通过output查看日志,验证服务是否启动成功

tail -f output

3)访问控制台

服务成功启动后,通过浏览器可访问控制台,在浏览器打开网址:

http://10.182.35.29:8080/,ip地址为控制台controller所在服务器的IP地址

账号/密码:admin/admin1234(默认admin)

controller部署成功,成功访问如下所示:

4.2 Agent部署

agent可以部署在windows或linux服务器,建议安装在linux服务器;

1)下载agent

登录ngrinder控制台http://10.182.35.29:8080/,点击右上角菜单【下载代理】下载agent(ngrinder-agent-3.5.8-10.182.35.29.tar)

2)上传agent到服务器

通过跳板机,将agent上传到执行机所在的linux服务器

3)解压agent

登录执行机agent所在服务器,将agent进行解压

tar -xvf ngrinder-agent-3.5.8-10.182.35.29.tar

解压后得到ngrinder-agent文件夹,文件目录如下:

4)配置控制机地址

登录agent所在服务器,跳转到ngrinder-agent文件夹(例如:/root/ngrider-agent),编辑__agent.conf ,将agent.controller_host=127.0.0.1修改为控制机的地址(从控制机上下载的agent,默认带控制机的地址,可不用修改)

ps:执行机启动后,__agent.conf会自动删除,如果需要重新配置,需要重新解压tar包使用

agent.controller_host=10.182.35.29

5)启动agent

  • 登录agent所在服务器,跳转到ngrinder-agent文件夹(例如:/root/ngrider-agent),执行启动命令:

nohup ./run_agent.sh >output 2>&1 &

  • 启动成功后,查看启动日志output

tail -f output

  • 启动验证

执行命令:ps -ef|grep java,查看agent是否正常启动;

agent成功启动后,在控制台【右上角菜单-代理管理】可查看已经启动的agent代理

  • 停止agent

登录agent所在服务器,跳转到ngrinder-agent文件夹(例如:/root/ngrider-agent),执行停止命令

sh stop_agent.sh

4.3 monitor部署

monitor可部署在agent和被测系统所在的服务器,用于监控agent和被测服务器的资源使用;

1)下载monitor

打开控制台controller,通过【右上角菜单-下载监控】,下载监控ngrinder-monitor-3.5.8.tar;

2)将监控ngrinder-monitor-3.5.8.tar上传到要监控的服务器,执行命令解压文件

tar -xvf ngrinder-monitor-3.5.8.tar

解压后文件目录如下:

3)启动监控

nohup ./run_agent.sh >output 2>&1 &

4)查看监控

在控制台创建测试任务,在目标主机中添加监控器所在的服务器ip地址

执行过程中,在【执行页面-目标状态】可实时查看被监控服务器的资源使用

执行完成,在【测试报告-详细测试结果】,点击【目标服务器】可查看详细监控报告图形;监控内容,可进行二次开发,展示更多监控内容;

如果没有启动监控,monitor展示为空

五、第一个性能测试脚本

环境部署搭建完成后,可进行性能测试脚本及场景的创建和执行;下面以访问baidu接口为例,演示ngrinder脚本和场景的创建及执行;

接口:

GET https://www.baidu.com

1)打开浏览器,访问控制台

http://10.182.35.29:8080/

2)创建脚本

点击【脚本】,在脚本页面,点击【创建-新建脚本】创建脚本

输入脚本名称、接口地址,创建脚本

3)脚本代码

 展开源码

4)脚本调试

脚本创建调试完成,点击【验证】执行脚本,test通过表示脚本执行通过;默认请求状态码200,执行通过;可保存关闭脚本;

5)创建场景

在控制台,点击【性能测试】,打开性能测试场景页面;

  • 点击【创建测试】,打开创建场景页面,编辑场景信息,保存并执行;

  • 实时查看执行结果

  • 查看测试报告

执行完成后,查看测试报告和详细测试结果

测试报告,可查看场TPS、响应时间、成功率以及日志信息(压缩包,需要下载查看);

详细测试结果-执行报告,图表展示TPS、响应时间等信息

详细测试结果-目标服务器,查看被监控服务器的资源使用;

 

 

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值