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

 

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

 

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

 

为帮助各位根据本身的实际状况选择合适的工具,本文选取了自动化测试的几款典型的工具,从工具软件的各个方面进行比较。方便各位在选择工具的时候作有效的决策。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

支持应用json

 

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

默认支持大部分经常使用的应用程序。
其余应用程序能够经过加载相应的识别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等。行为驱动让脚本维护更为方便。开发的脚本基于开源引擎执行,避免了供应商绑定。灵活开放能引入众多的开源库和解决方案,易扩展。

 

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

 

由于篇幅关系,本文只比较了几款主流工具,若是要参考其它工具,也可填写相似的表格作详细的比较分析。

相关文章
相关标签/搜索