软件测试中的性能测试工具的介绍
目前市场上的性能测试的工具种类很多,可以简单的划分为以下几种:负载压力测试工具、资源监控工具、故障定位工具以及调优工具。
1. 主流负载性能测试工具
负载性能测试工具的原理通常是通过录制、回放脚本、模拟多用户同时访问被测试系统,制造负载,产生并记录各种性能指标,生成分析结果,从而完成性能测试的任务。
主流的负载性能测试工具有:
QA Load:Compuware公司的QALoad是客户/服务器系统、企业资源配置(ERP)和电子商务应用的自动化负载测试工具。QALoad是QACenter性能版的一部分,它通过可重复的、真实的测试能够彻底地度量应用的可扩展性和性能。QACenter汇集完整的跨企业的自动测试产品,专为提高软件质量而设计。QACenter可以在整个开发生命周期、跨越多种平台、自动执行测试任务。
SilkPerformer:一种在工业领域最高级的企业级负载测试工具。它可以模仿成千上万的用户在多协议和多计算的环境下工作。不管企业电子商务应用的规模大小及其复杂性,通过SilkPerformer,均可以在部署前预测它的性能。可视的用户化界面、实时的性能监控和强大的管理报告可以帮助我们迅速的解决问题,例如加快产品投入市场的时间,通过最小的测试周期保证系统的可靠性,优化性能和确保应用的可扩充性。
LoadRunner:一种较高规模适应性的,自动负载测试工具,它能预测系统行为,优化性能。LoadRunner强调的是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的确认和查找问题。此外,LoadRunner 能支持最宽范的协议和技术,为您的特殊环境,量身定做地提供解决方案。
WebRunner:是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能,用户创建的是基于javascript的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能。
免费测试工具:
OpenSTA:开源项目,功能强大,自定义功能设置完备,但设置通过Script来完成。必须学习Script编写
WAS(Web Application Stress Tool):微软的工具,输出结果是纯文本的。
主流商用负载性能工具的比较图如下:
属性 | LoadRunner |
QALoad |
WebLoad |
出品公司 |
HP(Mercury) |
Compuware |
Radview |
价格 |
昂贵 |
较贵 |
一般 |
安装配置的复杂性 |
简单 |
简单 |
一般 |
操作性 |
较复杂 |
简单 |
简单 |
支持测试对象 |
各种中间件/数据库/应用服务器的性能监控/企业架构(j2ee和.net)的测试 |
客户/服务器系统、企业资源配置(ERP)和电子商务应用 |
Web Application |
支持平台 |
HP-UX, IBM AIX,Sun Solaris, Linux, NT/2k |
||
支持数据库 |
DB2,SQLserver, Orcale,Sybase |
ADO, DB2,Oracle,Sybase, SQLserver,Odbc |
ADO,DB2,Oracle,Sybase, SQLserver,Odbc |
支持协议 |
web,http(s),soap,streaming, wap,winsock,xml |
http,ssl,soap,xml, streaming,media |
xml,java,ejb, activex,wap,http,snmp, real/m$streaming |
类似C++ |
C/C++和VC++ |
Javascript | |
自动数据生成 |
Y |
Y |
Y |
脚本调试 |
Y |
Y |
Y |
报表定制功能 |
Y |
Y |
Y |
功能点 |
创建虚拟用户,创建真实的负载,定位性能问题,分析结果以精确定位问题所在,重复测试保证系统发布的高性能等 |
预测系统性能、通过重复测试寻找瓶颈问题、从控制中心管理全局负载测试、快速创建仿真的测试、验证应用的可扩展性。 |
强大的专业网站性能测试,虚拟多用户 |
虚拟用户上限数量 |
成千上万 | 成百上千 | 理论上无限,不过受机器的限制,同时运行太多影响结果的准确性 |
公司网址 |
Http://www.merc-int.com |
http://www.compuware-china.com |
http://www |
2.资源监控工具
资源监控作为系统压力测试过程中的一个重要环节,在相关的测试工具中基本上都有很多的集成。只是不同的工具之间,监控的中间件、数据库、主机平台的能力以及方式各有差异。而这些监控工具更大程度上都依赖于被监控平台自身的数据采集能力,目前的绝大多数的监控工具基本上是直接从中间件、数据库以及主机自身提供的性能数据采集接口获取性能指标。
首先,不同的应用平台有自身的监控命令以及控制界面。比如UNIX主机用户可以直接使用topas,vmstat,iostat了解系统自身的健康工作状况。另外,weblogic以及websphere平台都有自身的监控台,在上面可以了解到目前的JVM的大小、数据库连接池的使用情况以及目前连接的客户端数量以及请求状况等等。只是这些监控方式的使用对测试人员有一定的技术储备要求,需要自己熟练掌握以上监控方式的使用。
第三方的监控工具相应的对一些系统平台的监控进行了集成。比如Loadrunner对目前常用的一些业务系统平台环境都提供了相应的监控入口,从而可以在并发测试的同时,对业务系统所处的测试环境进行监控,更好的分析测试数据。
但Loadrunner工具其提供的监控方式还不是很直观,一些更直观的测试工具能在监控的同时提供相关的报警信息,类似的监控产品如QUEST公司提供的一整套监控解决方案包括了主机的监控、中间件平台的监控以及数据库平台的监控。QUEST系列监控产品提供了直观的图形化界面,能让测试者尽快进入监控的角色。
3. 故障定位工具以及调优工具
技术的不断发展以及测试需求的不断提升,故障定位工具应运而生,它能更精细的对负载压力测试中暴露的问题进行故障根源分析。在目前的主流测试工具厂商中,都相应地提供了对应的产品支持。尤其是目前.NET以及J2EE架构的流行,测试工具厂商纷纷在这些领域提供了相关的技术产品,比如Loadrunner模块中添加的诊断以及调优模块、Quest公司的PerformaSure、Compuware的Vantage套件以及CA公司收购的Wily的Introscope工具等等,都在更深层次上对业务流的调用进行追踪。这些工具在中间件平台上引入探针技术,能捕获后台业务内部的调用关系,发现问题所在,为应用系统的调优提供直接的参考指南。
在数据库产品的故障定位分析上,Oracle自身提供了强大的诊断模块,同时,Quest公司的数据库产品也在数据库设计、开发以及上线运行维护都提供了全套的产品支持。