[注]版权所有,引用请注明出处
QTP与RFT比较
注明:QTP选用9.2版本;
一.QTP介绍
是Mercury QuickTest Professional的简称,HP自动化测试工具;
是一种针对功能测试和回归测试自动化提供的测试软件,通过加载不同插件来支持主要的软件应用程序和环境,默认只支持标准windows控件,VB,和ActiveX;
是关键字驱动测试方法。(不绝对,主要看如何使用工具)
二.RFT介绍
是Rational Functional Tester的简称,IBM自动化测试工具;
是一个面向对象的自动测试工具,默认支持大多数的应用程序,而其他的非默认支持的应用程序可以通过加载不同的支持Jar包或自定义对象识别进行操作;
是数据驱动的测试方法。(不绝对,主要看如何使用工具)
比较项 | QTP | RFT | 说明 |
学习难度 | 工具的图形化操作功能比较简单; 脚本编写比较简单; 可以通过简单的描述性编程实现手动识别对象。 | 工具的图形化操作功能比较简单; 脚本编写比较难; 通过find方法实现手动识别对象,使用难席比较大点。 | RFT比QTP难说一些。 |
帮助文档 | 帮助文档挺系统,还对各类控件进行归类,方便查找;也提供了内置对象和内置函数的查找文档;还提供了对外接口说明文档;整个帮助有不少例子。 | 帮助文档和教程很少,很不系统。 而提供的API接口只有说明文档,未提供如何使用该文档;提供的例子很少。 | QTP比RFT更全、更人性化。 |
环境要求 | 环境要求较低,有512M内容就能比较顺畅的使用了。 | 环境要求比较高,至少得1G内存才能比较顺畅使用,512M内存时比较卡,速度慢。 | RFT要求比较高。 |
脚本语言 | VBS | Java、VB.NET | |
支持应用程序 | 默认支持windows控件,VB,和ActiveX; 可以加插件来支持其他常用的应用程序。不过插件都是要单买的,价格很高。 | 默认支持大部分常用的应用程序。 其他应用程序可以通过加载相应的识别Jar包进行识别,可惜,这些Jar包没有现成的。 | 都差不多,就看钱的问题了。 |
录制脚本 | 支持图形化的操作录制脚本; 支持图形化的操作添加验证点; 支持图形化的操作应用正则表达式。 | 支持图形化的操作录制脚本; 支持图形化的操作添加验证点; 支持图形化的操作应用正则表达式。 (有一个比较怪的做法,默认情况下,在一个文本框中输入值,是先获取此文本框的对象,然后点击文本框范围内的点,然后通过键盘输入方式输入值;下拉框对象也是点击下拉框的值。但是RFT可以手工修改脚本,改成直接赋值的方法) | RFT功能更强一些,不过QTP更易用一些。 |
参数化 | 支持图形化的数据表格式数据操作; 使用的是Excel文件来作为测试数据存储介质; 可以直接打开Excel数据文件修改数据; | 支持指参数化数据; 支持图形化的数据表格式数据操作; 使用的是Xml格式文件来存储测试数据; Xml测试数据只支持在RFT软件中使用格式化方式显示和修改; Xml测试数据使用标准的数据格式,通用性更好。 | QTP更容易用一些,RFT更标准化一些。 |
测试数据加载 | 测试数据加载简单,使用内置函数能方便实现。 | 可以用封装的方法来动态加载数据,不过比较复杂,而且还得修改脚本中参数化的地方。 | QTP简单些 |
对象识别能力 | 有内置识别的比较标准的控件识别强; 组合的控件识别较弱; 默认支持dom,可以直接操作。 | 有内置识别的比较标准的控件识别强; 自定义的控件识别较弱; 可以自定义非标准控件的识别; 当然,通过Jar包的加载,理论上可以操作任何想操作的对象。 | 差不太多,RFT的定制能力更强,但难度也比较大。 |
手动添加对象 | 提供树形的对象选取方式,可以选择当前节点,也可以选择父节点或子节点,使用挺方便。 | 提供节点直接选择和对象遍历选择, 不大实用。 首先,节点直接选择不能选择父节点或子节点,很多情况是直接选择不到要选的节点的; 其次,遍历节点更是不可能,因为页面经常一遍历就有好几百个对象,很是不好找。 | QTP更好一些,也更人性化。 |
控件在页面中情况 | 提供了Active Screen,即页面的缓存,方便在编写脚本时查看页面情况。 | 未提供相应功能。 | QTP更人性化一些。 |
脚本编辑 | 提供步骤编辑界面,方便不会不会编程的人员使用; 脚本编辑器的功能比较弱。 | 只有脚本编辑器,没有步骤编辑器; 脚本编辑器的功能比较强,跟操作Eclipse差不太多。 | RFT强些。 |
脚本调试 | HP为QTP加入了VBS调试功能; 调试功能比较弱。 | 直接使用Eclipse调试Java的强大功能。 | RFT强些。 |
回放速度 | 速度比较快。 | 速度较慢。 | QTP快些。 |
结果报告 | 树形显示各个步骤的执行情况。 可以在代码中向报告写内容。 | 提供多种形式的结果显示。 可以在代码中向报告写内容。 | 差不太多。 |
扩展性 | 除了加插件,扩展的东西不多。 | 有Jar包,几乎就可以扩展。 | RFT强些。 |
结合性 | 提供了与其他程序结合的接口,对C#、VB和VBS结合性比较好。 可以通过C#、VB和VBS等编写程序方便的调用和操作QTP。 | 这个不太清楚,暂未用到,后期补充。 | 暂不清楚。 |