摘要: 继续这个系列的学习,这一节重点介绍目前流行的性能测试工具以及如何选择适合项目的工具。在此之前,我已经对性能测试工具的原理与架构做了分析。 http://www.cnblogs.com/fnng/archive/2012/07/31/2617546.html 性能测试工具的选择与评估 ...
继续这个系列的学习,这一节重点介绍目前流行的性能测试工具以及如何选择适合项目的工具。在此之前,我已经对性能测试工具的原理与架构做了分析。
http://www.cnblogs.com/fnng/archive/2012/07/31/2617546.html
性能测试工具的选择与评估
在性能工具原理与架构一章中,我们了解到性能测试工具的原理通常是:通过录制、回放脚本,模拟多用户同时访问被测试系统,模拟产生负载压力,监控并记录各种性能指标,生成性能分析结果和报告,从而完性能测试的基本任务。
对需要进行性能测试的组织来说,决定使用哪种性能测试工具也不是一个简单的问题。我们有需要对性能需求进行分析,购买成本,人员学习使用成本进行综合考虑,从而确定最适合的本次性能测试的工具。
注: 这里所提到的性能测试工具为狭义上的性能测试工具,特指包含脚本生成、负载生成与测试数据搜集的性能测试工具,从广义上来讲,在性能测试过程中所用到一切 工具,都可以称为性能测试工具,其中包括,软件协议分析工具,测试数据生成工具,测试监控工具等都属于性能测试工具范畴。
我简单的软件性能测试工具分为三类,商业收费工具、开源免费工具、自主开发工具。下面是这三类工具的比较:
通过上面的比较分析,很难判别对某类工具的取舍,各自有其明显的优势,当然也有明显的缺点,如何更好选择工具,这里就要结合实际性能的需求了。
需要考虑以下几个方面:
性能需求:
首先要考虑的是否满足性能需求,例如系统的协议不支持,无法创建脚本,系统的模拟用户数达不到,或都某此特殊功能无法测试,如流媒体性能测试等。一些有性能工具是无法满足这些需求的,那当然要首先排除。
购买成本:
对于商业工具的购买成本也是我们需要考虑的问题,其实,这个问题也是老板需要考虑的问题,对性能测试成本的整体预算等。 当然了,在满足性能需求的前提下,当然一切从简。如果只需要某商业软件的部分功能,也可以只购买部分功能。有的是根据支持协议的多少、并发用户上限来区 分,如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来执行和监视对被测试网站的测试 过程。
-----------------------------------------------
关于性能测试工具非常的多,如果你是个开源的粉丝可以去开源中国转转,那里有许多非常优秀的开源软件。