
测试工具的分类与选择.ppt
29页测试工具的分类与选择测试工具的分类与选择测试工具的分类测试工具的分类(按测试方法按测试方法)n n1.白盒测试工具n n2.黑盒测试工具 测试工具的分类(按测试对象和目测试工具的分类(按测试对象和目的)的)n n1.单元测试工具n n2.功能测试工具n n3.负载测试工具或性能测试工具n n4.测试管理工具(TestLink)n n5.缺陷管理工具(Bugzilla)n n6.嵌入式测试工具n n7.安全性测试工具n n8.数据库测试工具测试工具的选择测试工具的选择n n1. 1.支持脚本语言支持脚本语言n n2. 2.脚本语言是否支持外部函数库、函数的可重用脚本语言是否支持外部函数库、函数的可重用n n3. 3.对程序界面中对象的识别能力对程序界面中对象的识别能力n n4. 4.抽象层抽象层n n5. 5.分布式测试的网络支持分布式测试的网络支持n n6. 6.支持数据驱动测试支持数据驱动测试n n7. 7.具有脚本开发良好的环境具有脚本开发良好的环境n n8. 8.其他功能其他功能面向开发的单元测试工具面向开发的单元测试工具n n按语言分类(Junit,C++ Test)n n按工具的功能特点分类:n n内存资源泄露检查工具(Purify)n n代码覆盖率检查工具(LogiScope)n n代码性能检查工具(Macabe)n n软件纠错工具(Rational Purl等)n n代码复杂度检查工具(SourceMonitor)功能测试工具的原理功能测试工具的原理n n基于GUI功能测试工具的基本原理是:将操作应用程序的各种动作和输入记录下来,如将键盘操作,鼠标单击等捕捉下来,生成一个脚本文件,这个脚本以后可以被“回放”,也就是能重复上一次所操作的动作,实现自动运行。
功能测试工具功能测试工具n nWinRunnern nQARunn nSQA Robotn nVisual Test Suiten nQTPn nSelenium(开源)性能测试工具的原理性能测试工具的原理n n性能测试工具执行测试的一般过程是通过虚拟用户生成器性能测试工具执行测试的一般过程是通过虚拟用户生成器录制关键业务操作,自动生成原始的测试脚本然后,在录制关键业务操作,自动生成原始的测试脚本然后,在控制器编辑、组织测试脚本分发给每个负载生成器(也称控制器编辑、组织测试脚本分发给每个负载生成器(也称代理,代理,AgentAgent),),AgentAgent向服务器发送请求模拟客户端,执向服务器发送请求模拟客户端,执行脚本的同时将测试的结果返回给控制器行脚本的同时将测试的结果返回给控制器n n性能测试工具的主要特性:性能测试工具的主要特性:n n首先能模拟实际用户的操作行为,记录和回放多用户测试首先能模拟实际用户的操作行为,记录和回放多用户测试中的事物处理过程,自动生成相应的测试脚本其次,能中的事物处理过程,自动生成相应的测试脚本其次,能针对脚本进行修改,增加逻辑控制、完成参数化和数据关针对脚本进行修改,增加逻辑控制、完成参数化和数据关联。
再者,可以设置不同的应用环境和场景,通过虚拟用联再者,可以设置不同的应用环境和场景,通过虚拟用户执行相应的测试脚本最后,在脚本执行过程中,通过户执行相应的测试脚本最后,在脚本执行过程中,通过系统监控工具获得系统性能的相关指标的值,包括系统资系统监控工具获得系统性能的相关指标的值,包括系统资源利用率、响应时间、系统吞吐量源利用率、响应时间、系统吞吐量负载和性能测试工具负载和性能测试工具n nloadrunner、QALoad、SQA load、WAS、Webload、performance、Jmeter、Rational robot和Visual Qualitify嵌入式测试工具原理嵌入式测试工具原理n n嵌入式系统软件的测试相对困难,因为它的开发是用交叉编译方式进行的在目标机上,不可能有多余的空间记录测试的信息,必须实时的将测试信息通过网线/串口传到宿主机上,并实时的显示因此,对源代码的插装和目标机上信息的收集成为嵌入式工具要解决的关键问题嵌入式测试工具嵌入式测试工具n nCodeTestn nLogiscope(用于代码分析、覆盖测试 )n nVectorCast几种主流的自动化测试工具几种主流的自动化测试工具n n1.Rational robot(功能/性能测试)n n2.WinRunner(功能测试)n n3.Loadrunner(性能与负载压力)n n4.QTP(功能测试与回归测试)n n5.SilkTest(功能测试与回归测试)n n6.WAS(负载压力测试,开源免费)n n7.Jmeter(开源,性能测试)n n8.MaxQ(开源Web功能测试工具)测试工具与开发过程关系图测试工具与开发过程关系图测试工具的选择测试工具的选择n n开源黑盒(功能、负载、性能)开源测试工具介绍开源测试工具介绍n nJmeterJmeter(功能(功能/ /性能测试)性能测试)n nMaxQMaxQ( (功能测试功能测试) )n nWebInjectWebInject( (功能功能/ /回归测试回归测试) )n nsoapUIsoapUI( (功能功能/ /性能测试性能测试) )n nTestMakerTestMaker( (功能功能/ /性能测试性能测试) )n nOpenSTAOpenSTA( (性能测试性能测试) )n nWAS(WAS(负载压力测试负载压力测试) )n nSeleniumSelenium(功能(功能/ /验收测试)验收测试)n nWatiRWatiR(功能测试)(功能测试)n nSiege(webSiege(web压力测试压力测试) )Jmetern nJmeterJmeter是是100%100%的的javajava桌面应用程序,它被设计用来加载被测软件功能特性、度桌面应用程序,它被设计用来加载被测软件功能特性、度量被测软件的性能。
它可以完成针对静态资源和动态资源的性能测试可以量被测软件的性能它可以完成针对静态资源和动态资源的性能测试可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能面测试软件的性能JMeterJMeter提供图形化的性能分析,产生相应的统计报表,包提供图形化的性能分析,产生相应的统计报表,包括各个括各个URLURL请求的数量、平均响应时间、最大请求的数量、平均响应时间、最大/ /最小响应时间、错误率等最小响应时间、错误率等n n优点:优点:n n不依赖于界面,如果服务正常启动,传递参数明确就可以添加测试用例,执不依赖于界面,如果服务正常启动,传递参数明确就可以添加测试用例,执行测试行测试 n n 测试脚本不需要编程,熟悉测试脚本不需要编程,熟悉httphttp请求,熟悉业务流程,就可以根据页面中请求,熟悉业务流程,就可以根据页面中inputinput对象来编写测试用例对象来编写测试用例 n n测试脚本维护方便,可以将测试脚本复制,并且可以将某一部分单独保存测试脚本维护方便,可以将测试脚本复制,并且可以将某一部分单独保存。
n n可以跳过页面限制,向后台程序添加非法数据,这样可以测试后台程序的健可以跳过页面限制,向后台程序添加非法数据,这样可以测试后台程序的健壮性 n n利用利用badboybadboy录制测试脚本,可以快速的形成测试脚本录制测试脚本,可以快速的形成测试脚本 n n JmeterJmeter断言可以验证代码中是否有需要得到的值断言可以验证代码中是否有需要得到的值 n n使用参数化以及使用参数化以及JmeterJmeter提供的函数功能,可以快速完成测试数据的添加修改等提供的函数功能,可以快速完成测试数据的添加修改等 Jmetern n 缺点:缺点:n n使用使用JmeterJmeter无法验证无法验证JSJS程序,也无法验证页面,所程序,也无法验证页面,所以需要手工去验证以需要手工去验证n nJmeterJmeter的断言功能不是很强大的断言功能不是很强大 n n就算是就算是jmeterjmeter脚本顺利执行,依旧无法确定程序是脚本顺利执行,依旧无法确定程序是否正确执行,有时候需要进入程序查看,或者查否正确执行,有时候需要进入程序查看,或者查看看JmeterJmeter的响应数据。
的响应数据 n nJmeterJmeter脚本的维护需要保存为本地文件,而每个脚脚本的维护需要保存为本地文件,而每个脚本文件只能保存一个测试用例,不利于脚本的维本文件只能保存一个测试用例,不利于脚本的维护MaxQn nMaxQMaxQ是是WebWeb功能测试工具,包括记录测试脚本的功能测试工具,包括记录测试脚本的HTTPHTTP代代理和用于回放测试的命令行实用程序所不同的是,它不理和用于回放测试的命令行实用程序所不同的是,它不是对是对GUIGUI操作的模拟,而是绕过用户界面,采用操作的模拟,而是绕过用户界面,采用Web ProxyWeb Proxy代理方式,获得浏览器提交的请求数据包,直接转发给服代理方式,获得浏览器提交的请求数据包,直接转发给服务器,这样测试速度快且稳定务器,这样测试速度快且稳定n n特点:特点:n n1. 1. 免费、开源免费、开源n n2. 2. 用用JythonJython作为记录测试脚本的语言作为记录测试脚本的语言n n3. 3. 基于基于JavaJava构建,在任何地方都可以运行构建,在任何地方都可以运行n n4. 4. 代码简单,容易按需增强其功能代码简单,容易按需增强其功能。
n n5. 5. 测试脚本可以为测试脚本可以为JUnitJUnit运行n n6. 6. 可以运行于代理服务器之后可以运行于代理服务器之后n n7. 7. 支持支持cookiescookiesMaxQ工作原理工作原理WebInjectn nWebInject 是一个自动化测试工具,主要适合Web应用和Web服务可以通过它来测试基于HTTP接口的系统组件,还可以用它来进行服务器监控n n使用环境:Windows, Linux soapUIn nsoapUIsoapUI是一个开源测试工具,通过是一个开源测试工具,通过soap/httpsoap/http来检查、调用、实现来检查、调用、实现Web Web ServiceService的功能的功能/ /负载负载/ /符合性测试该工具既可作为一个单独的测试软符合性测试该工具既可作为一个单独的测试软件使用,也可利用件使用,也可利用插件插件集成到集成到EclipseEclipse,,maven2.Xmaven2.X,,NetbeansNetbeans 和和intellijintellij中中使用n nsoapUIsoapUI优点:优点:n n ((1 1))soapUIsoapUI工具适合工具适合QAQA和测试人员,而不需要开发人员使用编程来和测试人员,而不需要开发人员使用编程来实现测试用例。
它能够基于实现测试用例它能够基于WSDLWSDL自动产生测试消息自动产生测试消息n n((2 2))soapUIsoapUI能够直接引用外部的属性文件来简化测试步骤,通过建立能够直接引用外部的属性文件来简化测试步骤,通过建立断言断言soapUIsoapUI可以进行可以进行xmlxml模式效验和错误效验模式效验和错误效验n n((3 3))soapUIsoapUI可用于压力测试,容易管理服务端点可用于压力测试,容易管理服务端点n n((4 4))soapUIsoapUI提供方便的接口能够集成提供方便的接口能够集成JBossJBoss、、AntAnt、、XML-BeanXML-Bean、、ApacheTCPMApacheTCPM on on等多种工具等多种工具n n((5 5))soapUIsoapUI可以完成多种可以完成多种webservicewebservice的测试场景的测试场景 soapUIn n缺点:缺点:n n((1 1)) soapUIsoapUI使用的是自己的使用的是自己的WebWeb服务客户端服务客户端, ,它它创建的测试消息不同于通常意义上的基于创建的测试消息不同于通常意义上的基于JAXJAX或或者其它的者其它的WebWeb服务客户端的工作过程服务客户端的工作过程, SOAPUI, SOAPUI并并不从不从WSDLWSDL中产生中产生JavaJava类类, ,它也不处理它也不处理JavaJava对象的序对象的序列化和反序列化列化和反序列化, ,这样的结果是客户端并不是像真这样的结果是客户端并不是像真正的正的WebWeb服务消费者那样去调用服务消费者那样去调用WebWeb服务。
服务n n((2 2)) SOAPUISOAPUI的的RequestTransportRegistryRequestTransportRegistry类并不提类并不提供从外部增加新的协议的机制供从外部增加新的协议的机制, ,它不支持它不支持JMSJMS协议TestMakern nTestMaker 不单单的是完整的测试平台,也是性能监控的工具,它是一个分布式的自动化测试平台,主要对应用程序的性能进行管理和监控支持 Java、.NET、Jython、Groovy、PHP、Ruby 和 Perl 的功能测试以及负载和性能测试,主要适合Web项目、SOA应用、RIA和BPM应用 OpenSTAn nOpenSTAOpenSTA是一个免费的、开放源代码的是一个免费的、开放源代码的webweb性能测试工具,能录制功性能测试工具,能录制功能非常强大的脚本过程,执行性能测试例如虚拟多个不同的用户同能非常强大的脚本过程,执行性能测试例如虚拟多个不同的用户同时登陆被测试网站时登陆被测试网站n nOpenSTAOpenSTA 是专用于是专用于B/SB/S结构的、免费的性能测试工具它的优点除了结构的、免费的性能测试工具。
它的优点除了免费、源代码开放的优点外,还能对录制的测试脚本进行免费、源代码开放的优点外,还能对录制的测试脚本进行, ,按指定的按指定的语法进行编辑在录制完测试脚本后,可以对测试脚本进行编辑,以语法进行编辑在录制完测试脚本后,可以对测试脚本进行编辑,以便进行特定的性能指标分析其较为丰富的图形化测试结果大大提高便进行特定的性能指标分析其较为丰富的图形化测试结果大大提高了测试报告的可阅读性了测试报告的可阅读性n nOpenSTAOpenSTA 基于基于CORBA CORBA 的结构体系,它通过虚拟一个的结构体系,它通过虚拟一个proxyproxy,使用其专,使用其专用的脚本控制语言,记录通过用的脚本控制语言,记录通过proxy proxy 的一切的一切HTTP/S trafficHTTP/S traffic通过分析通过分析OpenSTAOpenSTA 的性能指标收集器收集的各项性能指标,以及的性能指标收集器收集的各项性能指标,以及HTTP HTTP 数据,数据,对系统的性能进行分析对系统的性能进行分析n n优点:压力测试引擎具有可扩充性,可以完成大规模的压力测试提优点:压力测试引擎具有可扩充性,可以完成大规模的压力测试。
提供脚本语言支持供脚本语言支持WASn nWASWAS允许以不同的方式创建测试脚本:可以通过使用浏览允许以不同的方式创建测试脚本:可以通过使用浏览器走一遍站点来录制脚本,可以从服务器的日志文件导入器走一遍站点来录制脚本,可以从服务器的日志文件导入URLURL,或者从一个网络内容文件夹选择一个文件当然,,或者从一个网络内容文件夹选择一个文件当然,也可以手工的输入也可以手工的输入URLURL来创建一个新的测试脚本来创建一个新的测试脚本WASWAS可可以使用任何数量的客户端运行测试脚本,全部都有一个中以使用任何数量的客户端运行测试脚本,全部都有一个中央主客户端来控制在每一个测试开始前,主客户机透明央主客户端来控制在每一个测试开始前,主客户机透明的执行以下任务:与其他所有的客户机通信;把测试数据的执行以下任务:与其他所有的客户机通信;把测试数据分发给所有的客户端;在所有客户端同时初始化测试;从分发给所有的客户端;在所有客户端同时初始化测试;从所有的客户端收集测试结果和报告所有的客户端收集测试结果和报告n n优缺点:优缺点:WASWAS是一个免费的测试工具,使用起来比较简单,是一个免费的测试工具,使用起来比较简单,但是不能显示和编辑所录制的测试脚本,其可控性和图形但是不能显示和编辑所录制的测试脚本,其可控性和图形化测试结果都比较弱,故造成一定的局限性。
化测试结果都比较弱,故造成一定的局限性Seleniumn nSeleniumSelenium(适用于功能测试、验收测试)也是一个(适用于功能测试、验收测试)也是一个用于用于WebWeb应用程序测试的工具应用程序测试的工具Selenium Selenium 测试直接测试直接运行在浏览器中,就像真正的用户在操作一样运行在浏览器中,就像真正的用户在操作一样支持的浏览器包括支持的浏览器包括IE,MozillaIE,Mozilla和和FirefoxFirefox等这个工等这个工具的主要功能包括:测试与浏览器的兼容性具的主要功能包括:测试与浏览器的兼容性-- --测测试你的应用程序看是否能够很好得工作在不同浏试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上测试系统功能览器和操作系统之上测试系统功能-- --创建衰退创建衰退测试检验软件功能和用户需求测试检验软件功能和用户需求 支持自动录制动支持自动录制动作,和自动生成作,和自动生成NetNet、、JavaJava、、PerlPerl等不同语言的测等不同语言的测试脚本Selenium Selenium 是是 ThoughtWorksThoughtWorks 专门为专门为 WebWeb应应用程序编写的一个验收测试工具。
用程序编写的一个验收测试工具WatiRn nWatiRWatiR是使用是使用RubyRuby实现的开源实现的开源webweb自动化测试框架,小巧灵活,提供了自动化测试框架,小巧灵活,提供了对多种常见对多种常见webweb对象的识别和操作的支持对象的识别和操作的支持n n WatirWatir可以使用可以使用IEIE((IE5.5IE5.5及以上版本),及以上版本),FirefoxFirefox,,ChromeChrome进行进行WebWeb应应用测试支持用测试支持WindowsWindows((20002000及以上版本),及以上版本),LinuxLinux,,UbuntuUbuntu,,MacMac n nWatiRWatiR可以模拟用户访问网页、点击链接,填写表单,点击按钮可以模拟用户访问网页、点击链接,填写表单,点击按钮n nWatiRWatiR可以模拟用户验证页面内容可以模拟用户验证页面内容n n所需要的环境:所需要的环境:Ruby Ruby ,因为是使用,因为是使用RubyRuby实现的,脚本也是实现的,脚本也是RubyRuby的脚本,的脚本,所以需要在本机安装所以需要在本机安装RubyRuby。
n n其他特性:如果熟悉了其他特性:如果熟悉了RubyRuby,再结合其他一些工具,可以在,再结合其他一些工具,可以在WatirWatir框架框架的基础上扩展出很多特性例如:外部文件或的基础上扩展出很多特性例如:外部文件或数据库数据库数据库数据库的读取、模块化的读取、模块化的开发、可重用的函数库、数据驱动、关键字驱动、脚本的版本化控的开发、可重用的函数库、数据驱动、关键字驱动、脚本的版本化控制以及测试结果的管理,等等制以及测试结果的管理,等等Siegen nSiegeSiege是是LinuxLinux系统下的一个测试工具,完全使用系统下的一个测试工具,完全使用C C语言实现,可以对语言实现,可以对HTTPHTTP和和FTPFTP服务器服务器进行负载和进行负载和性能测试性能测试通过使用通过使用Siege Siege 提供的功能,提供的功能,可以很容易的制定可以很容易的制定测试计划测试计划:包括规定使用:包括规定使用并发用户数并发用户数、重复数量,、重复数量,从而可以模拟在服务器、网络或者其它对象上附加负载以测试他们提从而可以模拟在服务器、网络或者其它对象上附加负载以测试他们提供服务的受压能力,方便的测试服务器的性能。
最后,利用供服务的受压能力,方便的测试服务器的性能最后,利用SiegeSiege提供提供的测试结果来分析性能指标或者分析他们提供的服务在不同负载条件的测试结果来分析性能指标或者分析他们提供的服务在不同负载条件下的性能情况,分析测试结果,找出影响系统性能的瓶颈下的性能情况,分析测试结果,找出影响系统性能的瓶颈n n缺陷:在多次的缺陷:在多次的webweb测试实践中,发现测试实践中,发现SiegeSiege只输出了测试结果存储只输出了测试结果存储了概要测试测试结果没有详细的了概要测试测试结果没有详细的测试过程测试过程存储无法分析在何时出存储无法分析在何时出现了问题,无法详细了解测试过程的细节问题使得无法进一步对现了问题,无法详细了解测试过程的细节问题使得无法进一步对webweb的性能进行分析和评价的性能进行分析和评价 n nSiege Siege 是轻量的测试框架,是轻量的测试框架,脚本脚本所处理的所处理的测试用例测试用例构成简单,其实质就构成简单,其实质就是通过是通过HTTP HTTP 协议,发送请求来完成测试用例,所以很困难处理业务协议,发送请求来完成测试用例,所以很困难处理业务逻辑关系强的测试用例,例如,登录测试。
逻辑关系强的测试用例,例如,登录测试 Robot Framework n nRobot Framework 是一个关键词驱动的自动测试框架测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测试库中实现的关键词来在测试中运行程序因为Robot Framework 是灵活和可扩展的,所以它很合适用于测试具有多种接口的复杂软件:用户接口,命令行,web service,编程接口等。












