提到测试都会知道的几个工具:LoadRunner, JMeter, Apache ab ...
1 协议测试网站 protocoltesting,提供两个可参考的列表:
网络包/流量生产工具 http://www.protocoltesting.com/trgen.html
协议设计与验证工具 http://www.protocoltesting.com/designtools.html
2 开源测试网站 opensourcetesting,提供一个性能测试工具列表,目前约有52个:
性能测试工具 http://www.opensourcetesting.org/performance.php
3 列举几个 oschina 收录的开源性能测试或相关工具:
- benchbase http://www.oschina.net/p/benchbase
benchbase 是一个项目用来存储和管理 JMeter 或者 FunkLoad 压力测试结果和监控日志。提供详细的报表和图表。
- 性能测试工具 CBenchmark http://www.oschina.net/p/cbenchmark
CBenchmark—-CharlesCui’s Benchmark
这是我实现的一款性能测试工具,之前在工作中常用LoadRunner之类的工具来完成性能测试,但受限于LR极其昂贵的Lisence以及难以定制的SDK,于是我用C/C++实现了这个工具,并借助Linux系统对线程和进程的良好调度,可以实现极高的并发压力.
特点|Feature
本程序和当前性能测试解决方案相比,
可以实现极高的定制化:开放所有API,用户可以基于这些API实现自己的性能测试工具.
无限制:本产品完全免费,不会像现有成熟解决方案一样基于并发数,或者基于使用协议的Lisense限制。
高性能高并发:可提供比现有产品高出很多的并发能力,本程序使用C语言实现所有的代码。
通用性:由于本产品测试用例的业务实现是由客户完成,所以本产品的作用不限于某种测试协议,所以本产品是一个通用的性能测试工具.
执行过程可控:测试执行过程中用户可以通过Ctrl+C来控制本产品的执行。
特有的测试用例加载模式:对测试用例加载的模式和市面上的性能测试产品都不一样,用户可以将CBenchmark当做第三方库编码进入测试代码,也可以将CBenchmark当做工具,在执行的时候动态加载测试代码以产生压力.
本产品理论支持所有的服务端性能测试。
对于非标准协议的性能测试,我推荐您使用本产品。
- 性能和负载测试工具 Faban http://www.oschina.net/p/faban
Faban 是Sun Microsystems 用纯粹的Java 1.5+ 编写的,而且在CDDL-1.0 许可下是开源的。Faban 似乎只关心各种类型服务器的基准调教,包括Web 服务器。Faban 是为高性能和紧凑调速而精心编写的,因此任何测量都与服务器的真实性能尽可能接近。例如,在没有运行其他Faban 代码时收集基准调速数据,而只在基准调校过程缔结之后才分析数据。要想获得最好的性能,则这是所有基准运行的惯用方法。
Faban 还以Web 应用程序的形式提供了非常良好的配置与管理平台。为了服务于该控制平台(Web应用程序),Faban自身现已整合到了Tomcat 的服务器中。Tomcat 是Faban 的一部分,任何对Tomcat 和基准调校都感兴趣的Java 开发者都能阅读Faban 的文档和源码,而且可选择性地参与Faban 的开发。如果您是一位Java 开发者,且正寻找最有特色、长期的调校解决方案,Faban 应该是您要用到的工具。
相关链接
项目主页:http://java.net/projects/faban/
项目文档:http://www.opensparc.net/sunsource/faban/www/index.html
Faban Quick Start Tutorial:http://www.testnscale.com/docs/QuickStartTutorial.html
- TCP协议测试工具 tcpjunk http://www.oschina.net/p/tcpjunk
tcpjunk是一个工具,用于测试TCP协议的产生和模糊的网络流量。
- 性能分析工具 DTrace http://www.oschina.net/p/dtrace
DTrace,也称为动态跟踪,是由 Sun? 开发的一个用来在生产和试验性生产系统上找出系统瓶颈的工具。 在任何情况下它都不是一个调试工具, 而是一个实时系统分析寻找出性能及其他问题的工具。
DTrace 是个特别好的分析工具,带有大量的帮助诊断系统问题的特性。 还可以使用预先写好的脚本利用它的功能。 用户也可以通过使用 DTrace D 语言创建他们自己定制的分析工具, 以满足特定的需求。
4 还有一个很特别的工具: tcpcopy http://code.google.com/p/tcpcopy/
an online request replication tool, fit for online testing, stress testing, performance evaluation,etc
tcpcopy是一种请求复制(所有基于tcp的packets)工具,其应用领域较广,我们曾经应用于
网易的广告投放系统,urs系统,nginx hmux协议等系统,避免了上线带来的很多问题。
我们即将应用tcpcopy于membase替换现有mecached系统的任务中。由于membase还不够
成熟,不适合直接上线,利用tcpcopy程序,可以把访问memcached的系统流量复制一份到
membase系统中去。对于membase来说,这份流量就是访问membase的,跟直接上线
membase效果一样,就可以做各种试验,查看membase的各种特性。
tcpcopy六大功能:
1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测
试工具真实地多),也可以提前发现一些bug
2)如果后端的连接是短连接并且请求体不大,请求丢失率一般都非常低(1/10万),可以应用于热备份
3)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开
发者有信心上线
4)对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验
5)利用级联tcpcopy,构造无限在线压力,满足中小网站压力测试要求
6)实战演习(架构师必备)
特点:
1)实时
2)效果真实
3)低负载,不影响在线