QTP,全称为Quick Test Professional,它与WinRunner同为MI公司开发的功能强大的功能测试工具。从时间上来看,WinRunner在1995年便已经推出,远早于QTP,而QTP直到2002年才正式推出。从MI公司提供的一些官方资料来看,虽然他们宣称暂时不准备淘汰WinRunner,但他们的宣传资料上又明确表示,QTP已经具备了WinRunner中几乎所有的特性,同时具备了一些独有的特性,并且总体来说,使用更简单、更易扩展和维护,推荐新用户使用QTP,并建议已使用WinRunner的老客户逐渐实现转换。由此看来,MI公司实际上已经有使用QTP逐步取代WinRunner的计划。更重要的是,QTP对J2EE,.NET架构的应用程序支持得比WinRunner要好(从我实际的试用过程中,也感到确实是如此),因此我认为,从我们公司的实际情况出发,针对产品综合部今后将逐步开展自动化测试的计划,QTP应该是一个比较好的选择。
不论是WinnRunner还是QTP,它们都是功能十分强大的测试工具,加上目前国内关于测试工具的培训和文档资料,实在是少之又少,因此要完全了解和掌握它们,绝不是一朝一夕的事情。在这里我只能就目前对它们的理解程度粗略地介绍一下二者的两点主要不同之处。
1、        使用的脚本语言不同。WinRunner使用的是TSL语言,这是MI公司独有的语言,有特殊性,因此在学习上会有一定难度,不过好在它与C 语言比较类似,如果测试人员有一定的C语言编程基础,会相对容易一些。而QTP使用的则是微软的VBScript语言,比较通用,而且也相对简单易学。从语言上的比较上来看,我个人觉得在编程能力上,WinRunner更胜一筹,因为它拥有相当丰富的C语言函数库,而相对而言,QTP则更大众化,它面向的是没有太多技术背景和编程经验的测试人员。
2、       QTP8.0具有的一大特性:关键字驱动测试(keyword-driven testing)。它的具体操作方法我将有另外的文档详细说明,这里只是简单介绍一下。通过“关键字驱动测试”,测试人员不需要“录制”测试脚本,而可以改成“设计”测试脚本。即:先将应用程序的GUI对象添加到QTP的对象仓库(Object Repository)中,然后针对每一个需要操作到的对象设计每个测试步骤。我个人感觉,这的确是一个很酷的特性,它使我们可以不必实际去操作应用程序,就可以编写出测试脚本,这样做既节省了时间,而且还有一个更大的好处就是可以在应用程序还没有设计完成,或者由于出错无法正常执行的时候仍然可以编写我们的测试脚本。应用程序只需要有使用界面(UI),而不必实际运行,测试人员就可以开始建立测试脚本,为我们实施自动化测试赢得更充足的时间。而在 WinRunner中,虽然也可以采用先学习对象,然后编写代码的方式来完成测试脚本,但这样做要求测试人员对TSL语言比较熟悉才做得到,远不如QTP 来得简单。在实际的操作中我还发现,有些时候采用录制的方法无法捕获对应用程序的操作,此时改用关键字驱动测试却可以收到不错的效果。
3、相对WinRunner,QTP还具有很多优点,例如“数据表整合”,“Active Screen”,“point and click”,更容易参数化等等,但对于这几点我还没有深入的做过比较,如果今后我对此有了更多的体会和了解,我将再作整理。

转自:http://www.blogjava.net/xingcyx/archive/2006/12/25/89932.aspx

*********************************************************************************
QTP和WINRUNNER详细对比

WinRunner and QuickTest Pro都适用的领域:
Web-Related Environments        IE, Netscape, AOL
        JDK, Java Foundation Classes, AWT
        Symantec Visual Café
        ActiveX Controls
ERP/CRM        Oracle: Jinitiator, 11i, NCA
Custom Client Server        Windows
        C++/C
        Visual Basic
Operating Systems        Windows 98, 2000, NT, ME, XP
Legacy        3270, 5250 Emulators
        VT100

只能使用WinRunner的领域:
Custom Client/Server        PowerBuilder
        Forte
        Delphi
        Centura
        Stingray
        SmallTalk
ERP/CRM        Baan
        PeopleSoft Windows
        Siebel 5, 6 GUI Clients
        Oracle GUI Forms

只能使用QuickTest Pro的领域:
ERP/CRM        SAP
        Siebel 7.x
        PeopleSoft 8.x
.Net        WinForms
        WebForms
        .Net controls
Web Services        XML, HTTP
        WSDL, SOAP
        J2EE, .Net
Multimedia        RealAudio/Video
        Flash

Winrunner的测试流程
1.        识别应用程序的GUI对象
2.        建立测试脚本
3.        对测试脚本除错
4.        在新版应用程序执行测试脚本
5.        检视测试结果
6.        回报缺陷
WINRUNNER的优点:
1.主要还是面向c/s架构,对此类产品的支持比较好
2.不必购买昂贵的Addin即可识别相应的控件,并进行测试脚本的录制和回放; 可以自定义识别大部分的常用控件,而且可以保存下来供长期使用
WINRUNNER的缺点:
1. WR的对象管理不如QTP那么有效
2. WR的语言主要是基于类C的TSL,是Mercury发明的语言, 在学习上会有一定难度
3. WR的稳定性不行,而且无意人为的干扰可能导致回放的失败
4.应用程序中控件的位置是固定的,不能随着窗口或分辨率的变化而变化; 一个窗口中不能有两个同类的控件位置相同;部分控件还是不能识别

QTP自动化测试流程:
1  准备测试用例
2  配置QTP(QTP通过插件方式支持不同的开发环境,正式开始录制前需要根据被测程序
3. 录制脚本
4. 修改增强脚本
5. 调试脚本
6. 回放脚本
7. 脚本维护

QTP的优点:
1.        操作简单,有3种视图,适合不同掌握程度的人使用,可以快速上手
2.        数据表整合,Active Screen,point and click,更容易参数化
3.        VBScript简单易学
4.        具备了WINRUNNER几乎所有的特性

QTP的缺点:
1.        对于CS架构的一些软件,需要下载插件,否则无法识别
2.        录制时,产生大量重复的对象

当进行录制时间,WR会对选取的每个对象做唯一的描述并写入GUI MAP中,GUI MAP和测试脚本被分开保存维护.当软件用户界面发生变化时,只需更新GUI MAP即可

从适用范围来看:WR比较适用于C/S架构软件,而QTP对于C/S架构的也适用,但对于B/S架构的适用性更胜一筹.

注意:目前WinRunner已被HP淘汰,由QTP替代。

转:http://www.cnblogs.com/Lemon_s/archive/2008/10/10/1307769.html

QTP和WinRunner区别的更多相关文章

  1. Robotium 系列(1)

    之前也写过一些blog,可是没什么坚持.这个系列算是对之前工作的一个总结和提高:也与大家共同进步! 本文主要介绍的内容是: 1. 软件测试的基本概念 2. 自动化测试的概念 3. 手动测试和自动化测试 ...

  2. 【转】腾讯移动品质中心TMQ [腾讯 TMQ] 测试管理平台大比拼

    简介 测试管理平台是贯穿测试整个生命周期的工具集合,它主要解决的是测试过程中团队协作的问题,比如缺陷管理.用例管理.测试任务管理等. 目前市面上比较流行的测试管理工具有QC. Mantis. BugZ ...

  3. Watir、Selenium2、QTP区别

    1.支持的语言 Watir:ruby Selenium2:支持多种语言,如:python,ruby,java,c#,php,perl,javascript QTP:vbscript 2.支持的浏览器 ...

  4. qtp与selenium2的区别

    QTP:  我觉得qtp适合的人: 对编程不是很熟悉的 厌烦了手动的功能测试,想快速进入自动化行业的 公司想快速自动化项目,并且对价格或者对盗版无所谓的 vbs脚本语言易于上手,可以培训你对代码的兴趣 ...

  5. qtp type和set方法的区别

    type模拟键盘输入,是一个字符一个字符的输入. set是整个输入框一起置值. 例如:winedit中输入a后,再用type输入b,结果就是ab 如果用set输入a后,再用set输入b,结果就是b. ...

  6. 自动化测试工具QTP的使用实例 分类: 软件测试 2015-06-17 00:23 185人阅读 评论(0) 收藏

    1. QTP简介 1.1QTP功能与特点 QTP是QuickTest Professional的简称,是一种自动化软件测试工具.在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试 ...

  7. 自动化测试工具QTP和SilkTest横向PK(转)

    转自:http://www.uml.org.cn/Test/201405212.asp?artid=1686 众所周知,自动化测试工具曾几何时三足鼎立,Mercury QTP/WinRunner系.I ...

  8. QTP之delphi试用感想一(自动化测试)

    这两天一直在琢磨自动化测试,自动化测试,其实与单元测试有一些相同之处,单元测试的目的也是可以一次写,多次运行,对于测试驱动及后期维护真是有非常多的好处,用自动化测试工具也是如何,主要目的是为了回归测试 ...

  9. 整理QTP知识之1

    以下说明由网络其他文章整合而成. 一.关于QTP的说明 QTP是目前市场上占有率最高的一款自动化测试工具,也是每一位测试工作者最想掌握的工具之一,也是目前流行的基于GUI的功能自动化测试工具之一. Q ...

随机推荐

  1. webpack常用的插件安装命令

    webpack常用的插件安装命令:1:npm install html-webpack-plugin --save-dev //自动快速的帮我们生成HTML.2:npm install css-loa ...

  2. 微信公共平台开发4 .net

    之前说了让微信发送给关注我们的粉丝普通的文本信息,下面我们来看看如何发送图文信息,需要注意的是这里说的是,让微信发给我们,而不是我们拍个图片发给微信处理,上传图片在以后的再讲.下面是发送图文消息的函数 ...

  3. 精简CSS代码

    精简CSS代码可以帮助减小样式文件的大小,使代码清晰,方便维护. 使用简写属性及默认值 .header { margin-top: 10px; margin-right: 20px; margin-b ...

  4. ABAP modify screen:修改屏幕,实现隐藏、禁止输入字段

    Loop at screen会loop处理屏幕上的每一个组件,并对其做相应的处理. SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.PARAMETERS  ...

  5. mac java 环境设置

    MAC下JDK1.6下载路径 http://support.apple.com/kb/DL1572 Mac OS的java版本问题和Eclipse中无法找到jdk源代码的问题解决办法 下载包含源代码j ...

  6. iOS之 PJSIP静态库编译(二)

    咱们书接上回: 上一篇编译好了PJsip这次我们来点实战 上次编译过后就不必做别的修改因为ios平台的库都支持了. 打开工程   找到 pjsip- apps/src/pjsua/ios/ipjsua ...

  7. iOS多线程-03-NSOperation与NSOperationQueue

    简介 通过NSOperation与NSOperationQueue的组合也能实现多线程 通常将任务封装成NSOperation对象,并将对象添加到NSOperationQueue中实现 NSOpera ...

  8. Android 之 json数据的解析(jsonReader)

    json数据的解析相对而言,还是比较容易的,实现的代码也十分简单.这里用的是jsonReade方法来进行json数据解析. 1.在解析之前,大家需要知道什么是json数据. json数据存储的对象是无 ...

  9. 安装concrete时提示“...database does not support InnoDB database tables..."如何解决

    安装很多系统时,经常有有提示: "...database does not support InnoDB database tables..." 解决办法: 找到MySQL的配置文 ...

  10. Effective Java 04 Enforce noninstantiability with a private constructor

    A class can be made noninstantiable by including a private constructor. // Noninstantiable utility c ...