目前市场上的性能测试的工具种类很多,可以简单的划分为以下几种:负载压力测试工具、资源监控工具、故障定位工具以及调优工具。
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 支持平台 windows,unix或linux HP-UX, IBM AIX,Sun Solaris, Linux, NT/2k Unix Windows 支持数据库 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 功能点 创建虚拟用户,创建真实的负载,定位性能问题,分析结果以精确定位问题所在,重复测试保证系统发布的高性能等 预测系统性能、通过重复测试寻找瓶颈问题、从控制中心管理全局负载测试、快速创建仿真的测试、验证应用的可扩展性。 强大的专业网站性能测试,虚拟多用户 虚拟用户上限数量成千上万成百上千理论上无限,不过受机器的限制,同时运行太多影响结果的准确性
测试管理工具:可以帮助完成测试计划、跟踪测试运行结果等的工具。这类工具还包括有助于需求、设计、编码测试及缺陷跟踪的工具;
静态分析工具:分析代码而不执行代码。这种工具检测某些缺陷比用其它方法更有效,开销也更小。这种工具一般可以度量代码的各种指标,如McCabe测定复杂度,
Logiscope度量代码和规范的复合度等等;
覆盖率工具:这种工具评估通过一系列测试后,软件被执行的程度。这种工具大量的被应用于单元测试中,如PureCoverage、TrueCoverage、Logiscope等
动态分析工具:这种工具评估正在运行的系统。例如,检查系统运行过程中的内存使用情况,是否有内存越界、内存泄露等等,这类工具有Purify、BoundChecker等;
测试执行工具:这类工具可使测试能够自动化进行,并且各个层次(单元测试、集成测试、系统测试)的执行工具都有。例如系统测试阶段有功能测试自动化工具,如Robot、Winrunner、SilkTest等;还有性能测试工具,如Loadrunner、SilKPerformer等。
白盒测试工具主要有:
内存资源泄漏检查:Numega中的bouncechecker,Rational的Purify
代码覆盖率检查: Numega中的truecoverage,Rational的Purecoverage,Telelogic公司的logiscope,Macabe公司的Macabe
代码性能检查: Numega中的truetime,Rational的Quantify
代码静态度量分析质量检查工具:logiscope和Macabe
黑盒测试工具主要有:
客户端功能测试: MI公司的winrunner,compuware的qarun,Rational的robot
服务器端压力性能测试: MI公司的winload,compuware的qaload,Rational的SQAload等等
Web测试工具: MI公司的Astra系列,rsw公司的e-testsuite
测试管理工具: rational的testmanager,compuware的qadirector等 TestCenter,SmartBits,iTester
缺陷跟踪工具: trackrecord,Testtrack
单元测试工具:
测试框架:delphidunitjavajunitc++cppunit
ixia:网络收发、网络流量测试工具
iozone:磁盘IO测试工具
性能测试工具: (桌面)Jmeter,Load Runner ,silk performer,(网站) Apache AB,SoupUI , Webserver Stress Tool
功能测试工具: (桌面)QTP/UFT (网页)Capybara 、Selenium (APP)APPium,robotium
测试管理工具: TestCenter、QC(Quality Center),fitnesse ,JIRA