继续这个系列的学习,这一节重点介绍目前流行的性能测试工具以及如何选择适合项目的工具。在此以前,我已经对性能测试工具的原理与架构作了分析。javascript
http://www.cnblogs.com/fnng/archive/2012/07/31/2617546.html html
性能测试工具的选择与评估 java
在性能工具原理与架构一章中,咱们了解到性能测试工具的原理一般是:经过录制、回放脚本,模拟多用户同时访问被测试系统,模拟产生负载压力,监控并记录各类性能指标,生成性能分析结果和报告,从而完性能测试的基本任务。web
对须要进行性能测试的组织来讲,决定使用哪一种性能测试工具也不是一个简单的问题。咱们有须要对性能需求进行分析,购买成本,人员学习使用成本进行综合考虑,从而肯定最适合的本次性能测试的工具。数据库
注:这里所提到的性能测试工具为狭义上的性能测试工具,特指包含脚本生成、负载生成与测试数据搜集的性能测试工具,从广义上来说,在性能测试过程当中所用到一切工具,均可以称为性能测试工具,其中包括,软件协议分析工具,测试数据生成工具,测试监控工具等都属于性能测试工具范畴。服务器
我简单的软件性能测试工具分为三类,商业收费工具、开源免费工具、自主开发工具。下面是这三类工具的比较:网络
经过上面的比较分析,很难判别对某类工具的取舍,各自有其明显的优点,固然也有明显的缺点,如何更好选择工具,这里就要结合实际性能的需求了。架构
性能需求:并发
首先要考虑的是否知足性能需求,例如系统的协议不支持,没法建立脚本,系统的模拟用户数达不到,或都某此特殊功能没法测试,如流媒体性能测试等。一些有性能工具是没法知足这些需求的,那固然要首先排除。curl
购买成本:
对于商业工具的购买成本也是咱们须要考虑的问题,其实,这个问题也是老板须要考虑的问题,对性能测试成本的总体预算等。固然了,在知足性能需求的前提下,固然一切从简。若是只须要某商业软件的部分功能,也能够只购买部分功能。有的是根据支持协议的多少、并发用户上限来区分,如loadrunner 。
这里要多扯一点,loadrunner应该是性能测试领域的巨无霸,它的年服务费多百万,这不是通常的小公司能承受的,可能许多网友用破解习惯了不觉得然。并且loadrunner是能够定制的,通常商业软件都是能够定制的,也就是说,你有特定的需求,只要你愿意花钱,提供商均可以帮你定制开发。这样算下来成本会很高。
那么开源软件呢? 开源的性能测试工具其实很是的多,由于它们都分别适合在不一样的需求场景下,因此,它们的体积相比商业软件会小很大,固然功能也相对简陋。可是他们在某些状况下能够彻底知足某些性能需求,或者能够经过几款开源工具配合知足,或者经过对开源工具进行扩展进行知足。对开源工具进行扩展,对测试人员的要求较高。须要测试人员对工具的原理及源代码有至关有研究。这里对测试人员自动能力的提高很是有帮助。
或者你的性能测试项目特殊,找遍市面上的全部性能工具无一款满意,商业定制成本太高。或者你想构建本身有工具体系。处于公司需求的特殊性与长期性考虑,能够自主开发一个性能测试工具来用。一次开发,永久收益(固然也须要维护与升级、扩展等),并且更贴近自已的需求。目前不少知明的大公司都有本身的性能测试工具,用于内部使用。
人员学习成本:
最后要提到的就是人员对工具的学习成本,其实,测试人员在选择性能测试工具时最早考虑的就是从本身会使用的工具入手,这样能够最低的控制学习成生,若是整一个工具,测试人员单学测试脚本就学了半年,老板早让你走人了。这也是对性能测试人员要求较高的地方。因此,对于性能测试人员,你最好熟悉一款流程的商业性能工具,一款开源免费性能具,还须要熟悉常见的性能脚本开发语言等,这是基本要求。
性能测试工具介绍
商业工具 :
QA Load:Compuware公司的QALoad是客户/服务器系统、企业资源配置(ERP)和电子商务应用的自动化负载测试工具。QALoad是QACenter性能版的一部分,它经过可重复的、真实的测试可以完全地度量应用的可扩展性和性能。QACenter聚集完整的跨企业的自动测试产品,专为提升软件质量而设计。QACenter能够在整个开发生命周期、跨越多种平台、自动执行测试任务。
SilkPerformer:一种在工业领域最高级的企业级负载测试工具。它能够模仿成千上万的用户在多协议和多计算的环境下工做。无论企业电子商务应用的规模大小及其复杂性,经过SilkPerformer,都可以在部署前预测它的性能。可视的用户化界面、实时的性能监控和强大的管理报告能够帮助咱们迅速的解决问题,例如加快产品投入市场的时间,经过最小的测试周期保证系统的可靠性,优化性能和确保应用的可扩充性。
LoadRunner:一种较高规模适应性的,自动负载测试工具,它能预测系统行为,优化性能。LoadRunner强调的是整个企业的系统,它经过模拟实际用户的操做行为和实行实时性能监测,来帮助您更快的确认和查找问题。此外,LoadRunner 能支持最宽范的协议和技术,为您的特殊环境,量身定作地提供解决方案。
WebRunner:是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload经过模拟真实用户的操做,生成压力负载来测试web的性能,用户建立的是基于javascript的测试脚本,称为议程agenda,用它来模拟客户的行为,经过执行该脚原本衡量web应用程序在真实环境下的性能。
IBM Rational Performance Tester(简称 RPT)也是一款性能测试工具,适用于基于 Web 的应用程序的性能和可靠性测试。Rational Performance Tester 将易用性与深刻分析功能相结合,从而简化了测试建立、负载生成和数据收集,以帮助确保应用程序具备支持数以千计并发用户并稳定运行的性能。
开源或免费工具:
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件作压力测试,它最初被设计用于Web应用测试但后来扩展到其余测试领域。 它能够用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 能够用于对服务器、网络或对象模拟巨大的负载,来在不一样压力类别下测试它们的强度和分析总体性能。
AutoBench 是一款基于httperf的Perl脚本。它会在一次测试中调用屡次httperf来对web服务器进行测试,每次会按照给定的参数增长并发链接数,将 httperf的测试结果保存为CSV格式的文件,该文件能够被Excel直接读取,方便生成测试报告。借助于autobench自带的 bench2graph工具能够生成漂亮的测试结果对比图。
ApacheBench 工具程式(ab)是 Apache 网站伺服器软体的一个附带的工具软体,专门用来执行网站伺服器的运行效能,特别是针对 Apache 网站伺服器 的效能分析。这支程式本来是用来检测 Apache 网站伺服器(Web Server) 所可以提供的效能,特别是能够看出 Apache 网站伺服器能提供每秒能送出多少网页,固然的,也能够用在任何其余的网站伺服器 Apache ab的全称是ApacheBench,是 Apache 附带的一个小工具,专门用于 HTTP Server 的benchmark testing,能够同时模拟多个并发请求。
curl-loader(也被称为“omes-NIK”和“davilka”)是一个开源的C语言编写的工具,模拟应用负载和成千上万的几十万人的HTTP / HTTPS和FTP/ FTPS的客户端应用程序的行为,每一个有其本身的源IP地址。相反,其余curl-loader使用真正的C编写的客户端协议栈,即libcurl和TLS/ openssl的SSL的HTTP和FTP协议栈,支持登陆和验证口味和模拟用户行为的工具。
Iago 是一个网站负载测试工具,Iago 针对一个给定的网站进行访问录制并合成流量数据。它不一样于其余的负载生成工具,它试图保持恒定的请求率。例如若是你想按每分钟100K来请求您的服务,Iago 会试图保持这个速度进行测试。
Pylot 是一款开源的用以测试 Web Service性能和扩展性的工具,它运行HTTP负载测试,这对于制定容量计划、肯定基准点、分析系统瓶颈以及系统调优都很是有用。在使用过程 中,Pylot会发起并发请求(HTTP Requests),检验服务器响应,以及带有相关指标的报表。它经过GUI或者Shell/Console来执行和监视对被测试网站的测试过程。
-----------------------------------------------
关于性能测试工具很是的多,若是你是个开源的粉丝能够去开源中国转转,那里有许多很是优秀的开源软件。