多款自动化工具的横向比较 (UFT、RFT和CukeTest)

自动化测试作为非常专业的市场,不光对自动化测试的工程师技术要求很高,而且在工具选择也非常关键。很多公司的软件在以手动测试为主转换到更多应用自动化测试的过程中,一大困惑是如何选择自动化测试产品。工具产品的选择不仅决定着今后测试质量和自动化测试的开发效率。而且影响到技术人员的招聘,运营成本等多种因素。

仅从成本角度考虑,开源软件没有工具软件的购置成本,但是开源工具的集成和测试框架的搭建需要耗费大量人力。另外,疑难问题如果没有厂商支持,会影响项目进度,也会导致大量的支出。如果从总拥有成本角度考虑(TCO),未必是最优的。

为帮助各位根据自己的实际情况选择合适的工具,本文选取了自动化测试的几款典型的工具,从工具软件的各个方面进行比较。方便各位在选择工具的时候做有效的决策。UFT,RFT是老牌的自动化测试工具、生态相对封闭。CukeTest是开源软件Cucumber演变而来的软件,在开源社区被广泛的采用。

各自动化工具的特性比较
特性 惠普 Unified Function Testing IBM Rational Functional Tester 聆播科技CukeTest
脚本管理 脚本文件的方式管理脚本,后期维护困难,复用率很低。目前不少厂商开发了UFT的脚本管理工具,但无法脱离脚本文件的基础,很难有质的改变。 分散管理脚本,用户在使用时需到相应用户处查找脚本,查找到脚本后才能够调用,无形增加了工作量。分散管理模式不能实现脚本实时更新,不能实现实时共享,导致脚本的复用率较低。 脚本管理采用先进的行为驱动(BDD)方式,基于测试场景管理测试用例。测试步骤与代码相关联。脚本易于维护。因为基于自然语言编写测试场景,有很强的可读性,非测试开发也可审阅和贡献测试用例。
易用性
工具的图形化操作功能比较简单;
脚本编写比较简单;
可以通过简单的描述性编程实现手动识别对象。


工具的图形化操作功能比较简单;
脚本编写比较难;
通过find方法实现手动识别对象,使用难席比较大点。

用例开发部分采用可视化模式和文本模式两种方式,根据需要切换。代码部分使用流行的脚本编辑器。可从用例跳转到代码,或从代码转到用例文本。
使用配置 需要安装一系列工具,并配置licence。 RFT安装复杂,配置步骤多。 多平台开发支持,包括MacOS、Windows等,开发的脚本还可在Linux上运行。从免费版开始,一定用量需安装License。
脚本语言 VBS Java、VB.NET JavaScript,Node.js

支持应用


默认支持windows控件,VB,和ActiveX;
可以加插件来支持其他常用的应用程序。不过插件都是要单买的,价格很高。


默认支持大部分常用的应用程序。
其他应用程序可以通过加载相应的识别Jar包进行识别,可惜,这些Jar包没有现成的。

支持各类应用包括Windows、移动端、Web、API等。移动端、Web、API等开发时需引入免费的开源库,无需额外成本。Windows应用测试可跟本公司另一产品LeanRunner结合使用。
录制脚本
支持图形化的操作录制脚本;
支持图形化的操作添加验证点;
支持图形化的操作应用正则表达式。


支持图形化的操作录制脚本;
支持图形化的操作添加验证点;
支持图形化的操作应用正则表达式。

不提供录制,Web采用开源方案的对象识别,有丰富的公开文档,简单培训即可了解。Windows支持对象识别,添加到对象管理库后再自动生成对象调用代码。
参数化
支持图形化的数据表格式数据操作;
使用的是Excel文件来作为测试数据存储介质;
可以直接打开Excel数据文件修改数据;


支持指参数化数据;
支持图形化的数据表格式数据操作;
使用的是Xml格式文件来存储测试数据;
Xml测试数据只支持在RFT软件中使用格式化方式显示和修改;
Xml测试数据使用标准的数据格式,通用性更好。

支持参数化。内置了行为驱动参数化功能。支持数据驱动,数据表可从外部导入,或将测试用例中已有的数据导出到Excel。

测试数据

加载

测试数据加载简单,使用内置函数能方便实现。 可以用封装的方法来动态加载数据,不过比较复杂,而且还得修改脚本中参数化的地方。 提供加载数据表的API。

对象识别

能力


有内置识别的比较标准的控件识别强;
组合的控件识别较弱;
默认支持dom,可以直接操作。


有内置识别的比较标准的控件识别强;
自定义的控件识别较弱;
可以自定义非标准控件的识别;
当然,通过Jar包的加载,理论上可以操作任何想操作的对象

对象识别使用了开源库Selenium的功能。是广泛使用的成熟方案,支持多种识别方式,包括Id,css, linkText, name, className, xPath等多种方式。

手动添加

对象

提供树形的对象选取方式,可以选择当前节点,也可以选择父节点或子节点,使用挺方便。
提供节点直接选择和对象遍历选择,
不大实用。
首先,节点直接选择不能选择父节点或子节点,很多情况是直接选择不到要选的节点的;
其次,遍历节点更是不可能,因为页面经常一遍历就有好几百个对象,很是不好找。

手动添加对象是基于流行的Selenium的对象添加,市场上有众多的技术人员了解这些添加对象的方式,也有非常多的免费培训讲解。
脚本编辑
提供步骤编辑界面,方便不会不会编程的人员使用;
脚本编辑器的功能比较弱。


只有脚本编辑器,没有步骤编辑器;
脚本编辑器的功能比较强,跟操作Eclipse差不太多。

集成流行的vscode引擎,类似vscode的脚本编辑器,提供智能提示
脚本调试
HP为QTP加入了VBS调试功能;
调试功能比较弱。

直接使用Eclipse调试Java的强大功能。 JavaScript的调试方式,无需编译。另有多种按照场景的调试方式。因为是JavaScript语言,前端工程师也可参与开发调试。
回放速度 速度比较快。 速度一般。 采用Node.js引擎,和成熟的Selenium库,速度较快。
结果报告
树形显示各个步骤的执行情况。
可以在代码中向报告写内容。


提供多种形式的结果显示。
可以在代码中向报告写内容。

提供多种类型的html报告,其中有按照场景的汇总数据,以及每个场景步骤的详细数据。每个场景详细内容可以添加截屏或自定制数据。可以导出到PDF,另提供json报表数据,方便自定制。运行时可以自动录制视频。
扩展性 插件扩展,插件都由UFT厂商提供 有Jar包,几乎就可以扩展。 能够与多种开源的自动化库相结合使用,扩展自动化功能。因为基于流行的Node.js技术,Github上有众多数量的JavaScript库扩展功能。
集成性
提供了与其他程序结合的接口,对C#、VB和VBS结合性比较好。
可以通过C#、VB和VBS等编写程序方便的调用和操作UFT。

提供了编写用例脚本的API,但产品本身功能不易扩展 提供多种类型html报表,json报表数据,方便自定制报表,有Jenkins插件支持,可在Jenkins中轻松实现持续集成
安全性 架构较封闭,不支持提供源码,安全性无法评估 架构较封闭,不支持提供源码,安全性无法评估 基于开源实现,提供执行引擎及自动化库源码,便于自主可控
价格 昂贵 较贵 一般
总结 功能全面,价格昂贵,自动化测试脚本生成较快,但对需求的频繁变化自适应能力差,重新录制的风险较大,脚本维护困难,回归持续100%通过率较低。在国内的市场占有率有逐年下降的趋势。 RFT 的验证结构的功能比较强大,通过对 TestObject 的获取和使用,可以对 Eclipse 中的很多的 SWT/JFace 图形对象提供支持,而且也可以支持很多的验证种类;其次,它直观、易于理解。但RFT验证 API 的使用繁琐、可重用性低;也没有区分各个具体对象类型的差异,造成验证形式比较单一,从而不利于用户进行扩展操作;用例执行失败定位不方便,自动生成的脚本维护较困难。 性价比较高,可扩展性强。产品支持Web、接口、Android、IOS、Windows、Qt等。行为驱动让脚本维护更为方便。开发的脚本基于开源引擎执行,避免了供应商绑定。灵活开放能引入众多的开源库和解决方案,易扩展。

各软件在支持的语言、脚本开发、自动化技术、可扩展性、报告方面各有强项。相信大家在进行综合的比较后。对这几款工具有了初步的了解。在开源软件盛行的今天,由单一厂商提供大而全且价格昂贵的产品已不再是潮流,反之,支持开源、开放、提升价值是软件产品的新的趋势。

因为篇幅关系,本文只比较了几款主流工具,如果要参考其它工具,也可填写类似的表格做详细的比较分析。

原文地址:https://www.cnblogs.com/zyjing/p/9686031.html

时间: 2024-07-30 14:26:37

多款自动化工具的横向比较 (UFT、RFT和CukeTest)的相关文章

科技公司钟爱的50款开源工具--转载

本文介绍了多款知名的开源应用软件,科技公司可以用它们来管理自己的 IT 基础设施.开发产品. 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服务,或基于开源工具而建的产品和服务,还有一些在为开源代码贡献代码或支持开源项目. Black Duck 在 2015 年的一项调查发现,78% 的企业组织使用开源软件,这个比例几乎是 2010 年时候的两倍.此外,88% 的企业表示,它们预计在今后几年,会加大为开源项目贡献

大公司青睐的50款开源工具

过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的IT基础设施和网站,一些提供与开源工具相关的产品和服务,或基于开源工具而建的产品和服务,还有一些在为开源代码贡献代码或支持开源项目. Black Duck在2015年的一项调查发现,78%的企业组织使用开源软件,这个比例几乎是2010年时候的两倍.此外,88%的企业表示,它们预计在今后几年,会加大为开源项目贡献代码的力度,66%表示在考虑专有软件之前先考虑开源软件. 这回,我们介绍了最受科技公司青睐的一些开源项目.这些主

在 CentOS 7 中安装并使用自动化工具 Ansible

Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于Chef和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端.它使用SSH来和节点进行通信. 本篇中我们将在CentOS7上安装并配置Ansible,并且尝试管理两个节点. Ansible 服务端 – ansible.linuxtechi.com ( 192.168.1.15 ) 节点 –192.168.1.9 , 192.168.1.10 第一步: 设置EPEL仓库 Ansibl

使用Chef管理windows集群 | 运维自动化工具

但凡服务器上了一定规模(百台以上),普通的ssh登录管理的模式就越来越举步维艰.试想Linux发布了一个高危漏洞的补丁,你要把手下成百上千台机器都更新该补丁,如果没有一种自动化方式,那么至少要耗上大半天时间.虽然你编写了大量的shell(或python,perl)脚本来实现各种自动化场景,但最后会发现你又陷入了脚本的汪洋大海之中,管理和维护这么多的脚本的成本也不小.你需要一款基础设施自动化工具,希望它能具有以下功能. 1批量执行 这个不多说了吧,试想要为每一台机器打补丁的情形吧. 2任务编排 现

.NET开发不可错过的25款高效工具

.NET开发不可错过的25款高效工具 这些年来,微软的 .NET 开发团队不断在更新升级开发工具,这也提供了一个机会,让我们能对 .NET 系列的开发工具做出不断的评估和规范.以下是我们总结出的一些 .NET 开发不可错过的高效工具. 1. Two monitors——必备的. 2. Visual Studio ——同样的,也是必备的. 3. Launchy ——一款免费的必备工具.它能帮助开发者快速调用电脑中的程序快捷方式,而无需再通过传统的“开始”——“所有程序”中寻找所需的程序.在安装后,

ios界面自动化工具--Appium

ios界面自动化工具--Appium Appium是一款开源的移动端自动化测试框架,支持Android和Ios,之前简单介绍过Appium,链接http://www.yeetrack.com/?p=639.最近在做ios的自动化测试,再详细记录一下过程. 安装Appium 既然使用Appium框架,安装肯定是必须的,两种方式源码安装,或者直接安装二进制dmg文件. 源码方式 git clone https://github.com/appium/appium 下载完成后,执行sh reset.s

HTML5技术分享:前端自动化工具推荐

随着前端开发技术的不断发展,前端开发工作也变得越来越复杂,如果能合理地采用一些自动化的工具,生活要容易得多. LiveReload 我目前的开发主力机是一台较早的 13寸 Macbook Pro,外加一台戴尔的显示器.相信做前端开发的都知道,这多出来的一台显示器对工作效率的提升有多大. LiveReload 技术+两块显示屏可以帮你省去重复刷新浏览器这一枯燥的工作.目前实现 LiveReload 的方式很多,如果你倾向于图形化的桌面应用,可以尝试一下 LiveReload.app, 地址是:ht

强大的 Python 任务自动化工具!invoke 十分钟入门指南

接着前面的<tox 教程>,以及刚翻译好的<nox文档>,我们继续聊聊 Python 任务自动化的话题. nox 的作者在去年的 Pycon US 上,做了一场题为<Break the Cycle: Three excellent Python tools to automate repetitive tasks>的分享(B站观看地址:https://b23.tv/av86640235),她介绍了三个任务自动化工具:tox.nox 和 invoke,本文的话题正好就是最

运维自动化工具Cobbler之——安装实践

运维自动化工具--Cobbler实践 第1章 About Cobbler 1.1 Cobbler Introduction Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用.Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web