Grinder是一个JavaTM负载测试框架,支持分布式测试,开源,BSD授权,参见。
网址:
Grinder是目前市面上综合表现最好的性能测试工具之一。优点集中体现在效率较高、基于jython扩展性相当好。其他类似的工具有multi-mechanize、locustio。Jmeter也相当不错,但是扩展没有这么快速。
主要特性
通过ava API支持HTTP Web服务器、SOAP和REST Web服务及应用服务器(CORBA,RMI,JMS,EJB)的,以及自定义的协议。
灵活的脚本:强大的Jython和Clojure的语言。默认的脚本语言Jython。 Grinder 3允许任何代码(Java、Jython或Clojure)代码封装为测试。中有大量jython实例。
分布式架构:图形控制台允许监视和控制多个负载注入器,并提供了集中的脚本编辑和分发。
成熟的HTTP支持:自动管理客户端连接和cookies。 支持SSL、代理发现、连接控制、浏览器的录制和回放。详细特性参见。
Grinder最初由Paco Gómez和Peter Zadrozny为书籍《Professional Java 2 Enterprise Edition with BEA WebLogic Server》开发。Philip Aston接手并开发了Grinder 2和Grinder 3。Grinder 3引入jython支持,3.6引入Clojure支持。
- 技术支持 钉钉群21745728 qq群:144081101 591302926 567351477
快速入门Grinder进程
Worker
解释测试脚本和执行测试。每个Worker进程包含若干线程,可并行运行许多测试。
Agent
长时间运行的进程,用于启动和停止工作进程。并缓存从控制台分发的测试脚本。
Console
协调其他进程、收集及显示数据、脚本的编辑及分发。
Grinder由Java编写,每个进程都是一个java虚拟机(JVM)。
[图片上传失败...(image-998196-1528514315067)]
在进行比较重的负载测试时,每个负载注入机要启动一个agent进程。agent进程启动worker进程,控制台可控制和监控所有Workder。
控制台默认监听6372端口,设置grinder.useConsole为false或者连接不上console时,agent会自动启动worker。这种模式适用与调试脚本。
每个worker写日志信息到文件host-n.log中,数据写在host-n-data.log,错误error-host-n.log。
Final statistics for this process: Successful Tests Errors Mean Test Test Time Time (ms) Standard Deviation (ms) Test 0 25 0 255.52 22.52Test 1 25 0 213.40 25.15Test 2 25 0 156.80 20.81 "Image"Test 3 25 0 90.48 14.41Test 4 25 0 228.68 23.97 "Login page"Test 5 25 0 86.12 12.53 "Security check"Test 6 25 0 216.20 8.89Test 7 25 0 73.20 12.83Test 8 25 0 141.92 18.36Test 9 25 0 104.68 19.86 "Logout page" Totals 250 0 156.70 23.32