注明:QTP选用9.2版本;RFT选用7.0.1版本。
一.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。 |
这个不太清楚,暂未用到,后期补充。 |
暂不清楚。 |