nGrinder简介
nGrinder是基于Grinder开源项目,由NHN公司的开发团队进行了重新设计和完善。nGrinder是一款非常易用,有简洁友好的用户界面和controller-agent分布式结构的强大的压力测试工具。
nGrinder测试基于python测试脚本(groovy也可),用户按照一定规范编写测试脚本,controller会将脚本一集需要的资源分发到agent,用jython执行。并且在执行的过程中收集运行情况、相应时间、测试目标服务器的运行情况等。并且保存这些数据生成测试报告,以供查看。
这款框架的一大特点就是非常的简单易用,安装也很容易,可以说是开箱即用。
为什么是nGrinder
- JMeter
基于UI操作,容易上手,但是不具备编程能力。其次JMeter基于线程模拟数千用户几乎不可能。 - Tsung
基于Erlang,能模拟上千用户并且易于扩展。但是基于XML的DSL,描述场景能力弱,而且需要大量的数据处理才知道测试结果。 - Locust
基于python的gevent,能模拟百万个用户。但是需要对python有一定理解。 - Loadrunner
这个可以说是应用最多的一个,很方便,但是还是太重。往后的方向肯定是客户端工具逐步向平台化发展,所以loadrunner注定慢慢被淘汰(个人拙见)。而且不开源,扩展性不高,收费。 - nGrinder
单节点支持3000并发、支持分布式、可监控被测服务器、可录制脚本、开源、平台化。
综上可以看出nGrindr还是有很多优势的。
用nGrinder做一个简单的压测
- 安装controller
nGrinder是一个web应用和java应用的组合,需要装JDK1.6+的版本。
从下载地址获取安装需要的war包后,执行下面的命令启动nGrinder。如果不指定端口,默认8080端口。
java -XX:MaxPermSize=200m -jar ngrinder-controller-3.3.war --port 80
启动之后,就可以通过http://localhost:80访问ngrinder了。
-
安装agents
1.通过admin/admin登陆nGrinder。
2.下载agent
3.解压包并运行其中的run_agent.sh或者run_agent.bat即可。
4.可以通过菜单栏中的代理管理进入agent管理页面。
- 安装Monitor
Montior是agent的一个子集,用于收集目标服务器的相关数据,比如CPU、MEM、NetWork等信息。
1.下载
通过菜单栏中的下载监控按钮下载。
2.启动
解压包后,运行run_montior.sh(linux/mac)或者bat(windows)。 -
测试步骤
1.输入一个测试的url,选择脚本语言,然后开始测试,nGrinder会自动生成测试脚本并进入配置页面。
2.根据需求修改脚本
3.配置选项
4.运行
在配置页面右上角点击保存并运行,启动测试。
5.结果
当启动测试后,会在页面显示当前的TPS、虚拟用户、测试成功与否的数量等信息。测试完成后,会显示测试结果。
可以点击详细测试结果查看更详细的信息,比如TPS、平均时间、首次接受数据平均时间,以及被测服务器的CPU,MEM等信息。