一、性能工具对比
JMeter
基于UI操作,容易上手,但是不具备编程能力。其次JMeter基于线程模拟数千用户几乎不可能。
Loadrunner
这个可以说是应用最多的一个,很方便,但是还是太重。往后的方向肯定是客户端工具逐步向平台化发展,而且不开源,扩展性不高,收费。
nGrinder
单节点支持3000并发、支持分布式、可监控被测服务器、可录制脚本、开源、平台化。
比较点 | JMeter | Ngrinder | LoadRunner |
实现语言 | Java | java/python | java/VB/C/.NET |
使用方式 | C/S或Command | B/S | B/S |
支持分布式 | master/slave | controller/agent | master/slave |
资源监控 | monitor/plugin,如果二开,需要查找plugin的源码 | monitor方式,有直接可用的源码 | 自带资源监控功能 |
社区活跃度 | 文档完善 | 有中文社区 | 网上资料和相关培训很多,购买正版还可以得到技术支持 |
是否需要编码 | 基本不需要 | 需要,Jython/Groovy | 需要 |
脚本的维护 | 本地 | 内置SVN | 本地 |
脚本录制 | 可使用BadBoy进行录制 | 可通过PTS插件进行录制 | 自带录制功能 |
可扩展性 | 可增加plugin,输出结果可以再加工 | 可增加plugin | 通过扩展函数库实现 |
安装 |
简单,解压即可
| 简单,可以下载安装包或绿色包解压 | 安装包比较大,安装繁琐 |
二、nGrinder简介
nGrinder是基于Grinder开源项目,由NHN公司的开发团队进行了重新设计和完善。nGrinder是一款非常易用,有简洁友好的用户界面和controller-agent分布式结构的强大的压力测试工具。
nGrinder测试基于python测试脚本(groovy也可),用户按照一定规范编写测试脚本,controller会将脚本一集需要的资源分发到agent,用jython执行。并且在执行的过程中收集运行情况、相应时间、测试目标服务器的运行情况等。并且保存这些数据生成测试报告,以供查看。
这款框架的一大特点就是非常的简单易用,安装也很容易,可
以说是开箱即用。
nGrinderr直接部署成web服务,支持多用户使用,可扩展性好,可自定义plugin
三、环境搭建
1、安装JDK及配置环境变量
2、
安装Tomcat
3、下载nGrinder:
https://github.com/naver/ngrinder/releases
4、
把下载好的包放到Tomcat的webApps文件夹中
5、
启动Tomcat,
6、
安装Monitor(
需要安装在被测服务器上)
Montior是agent的一个子集,用于收集目标服务器的相关数据,比如CPU、MEM、NetWork等信息。
四、使用
1、输入测试URL,选择脚本语言,然后点击开始测试,会自动生成测试脚本并进入配置页面
2、根据性能测试计划修改脚本
3、配置选项
4、运行
在配置页面右上角点击
保存并运行
,启动测试。
5、结果
当启动测试后,会在页面显示当前的TPS、虚拟用户、测试成功与否的数量等信息。测试完成后,会显示测试结果。
可以点击详细测试结果查看更详细的信息,比如TPS、平均时间、首次接受数据平均时间,以及被测服务器的CPU,MEM等信息。
五、报告分析