原文:
Ranorex与QTP的详细比较——版主吐血力作
http://uniontesting.com/thread-21128-1-1.html
平台简要介绍
1.QTP平台:
配套使用QTP+TDS+ALM这三个软件。脚本开发在TDS(Test Design Studio)中,调试运行在QTP中,因为QTP的IDE太差,开发效率实在很低,所以引入TDS。 自动化测试用例在ALM中管理,采用BPT框架。
2.Ranorex平台:
Ranorex本身集成了开源的.NET IDE:SharpDevelop。也可以在Visual Studio中进行开发调试。
两个平台对比
1. IDE
QTP11的IDE太差,11.5的IDE有提升,但是11.5无法与 LoadRunner11共存(LR11.5及ALM11.5现在还无法破解)。相比之下,TDS比QTP的开发环境好太多。但是TDS中无法调试脚本,也无法编辑对象库。最要命的是TDS不能破解,稳定性也差。
TDS相比SharpDevelop这些成熟的IDE,还是有不少差距。Ranorex本身集成了SharpDevelop,开发效率非常高,大型项目的管理也更方便。同时支持直接在VisualStudio中进行开发调试。
QTP及TDS都配套支持ALM的代码版本管理。Ranorex依靠SharpDevelop对SVN的支持,也能方便实现代码的版本管理,稳定性反而更好。
如果进行多人协作开发,Ranorex的代码版本管理会稍微更稳定。
2. 脚本语言
QTP使用VBS,而且它还不是完整支持,像类的功能就不支持。Ranorex完全基于.NET,VB.NET及C#都是完整支持。
C#相对VBS有巨大的优势。在开发过程中经常要对脚本修改,使用C#支持重构,对于项目后期修改及维护带来极大方便。更可以利用OO语言的特性进行封装,运用设计模式。
3. 对象库
QTP的对象库功能非常好。Ranorex作为一个商业自动化测试 工具,它的对象库也不错,甚至在某些使用细节上要更方便,例如更多的快捷键。
Ranorex对于各种对象的识别能力要强于QTP。 web对象由于 技术很标准,所以识别都很完美。
Ranorex没有运行时对象库的状态显示,但是这个功能用处不大。
Ranorex的对象库借助类似Xpath的定位技术。如果两个工具都使用描述性编程进行开发,Ranorex的语法非常简洁,优势非常明显。
4. 测试用例管理
QTP本身的用例管理不是很方便,但是借助ALM的功能,非常便利。而且可以利用BPT框架组织用例,能开发给功能测试工程师使用。关键字以及数据驱动测试的支持都非常好。
Ranorex的用例管理集成在软件中,不能像ALM那样独立出一个软件来运行。软件比较小巧,打开编辑界面就能使用。关键字以及数据驱动也都支持。
alm与Ranorex都可以开放给功能测试工程师根据业务对代码模块进行组合编制用例。ALM平台明显更加友好。Ranorex中利用SVN获取项目代码,然后对各种代码模块组合,类似的功能也能实现。
ALM可以直接运程调用其他电脑上的QTP运行,Ranorex没有这种功能。
5. 二次扩展
QTP可以通过AOM技术,以Com组件的形式来被外部调用,但是这个技术稳定性很差。Ranorex的项目可以被以命令行的方式调用。
QTP现在有插件与Hudson(CI工具)进行集成,但是还不成熟。Ranorex项目由于可以被命令行方式调用,所以理论上可以与任何CI工具集成。
QTP可以调用外部.NET及Com组件。Ranorex基于.NET,所以完美支持外部.NET及com组件。
6. 支持的测试对象
QTP支持的平台众多,Ranorex的相比之下少一些,但是常见的平台都支持。Ranorex在.NET平台上的支持要更加完美,多次获得.NET类商业自动化测试工具冠军评选。。Ranorex在Flex平台上支持得比较好,QTP支持得很弱。在移动平台 Android以及IOS,QTP暂时不支持,Ranorex是现有商业工具中支持得最好的。
7. 配套文档及支持
QTP是老牌自动化测试工具,各种中英文档及书籍以及代码示例都比较多。Ranorex除了官方文档,第三方资料偏少。但是由于基于.NET,网上有大量的.NET源码可以借鉴。
QTP盗版没有官方技术支持,Ranorex公司官网有一个论坛,它的技术团队会解答各种问题。
8. 费用
QTP测试平台的正版费用非常高昂。Ranorex的Premium版是一千多欧元,与TDS的费用差不多。
QTP现在所有的版本都可以稳定破解。ALM最新版无法破解,估计以后是不能破解了。Ranorex的最新版本有人专门写破解工具,我与此人一直都有交流。而且由于它基于.NET,软件也小巧,破解难度相比TDS之类小很多。
QTP测试平台的软件都非常庞大,运行时服务器需要承载一个Oracle 数据库,ALM服务器(非常占用资料),需要专门配备服务器。Ranorex安装文件也就100多M,占用资源小很多。
9. 普及成熟度
国内QTP的用户非常多,Ranorex非常少。QTP已经非常成熟。Ranorex历史稍短,但是作为商业工具,已经很成熟,国外有大量跨国公司采用。
作为UI测试工具,都对测试要求环境比较高。
10. 公司开发平台配合
公司开发的软件都是基于.NET,那么使用Ranorex会降低技术支持成本。遇到一些技术问题,可以向开发人员求助,帮助调试。
Ranorex在公司项目的接口测试及灰盒测试方面,存在一定可能性。
迁移成本
1. 学习Ranorex成本
Ranorex作为AUT工具,与QTP的思路完全一致,都提供录制,对象库,关键字驱动,数驱动技术。它的界面类似于通用IDE风格。对于熟悉QTP,并且使用过VisualStudio的人来说,容易上手。
Ranorex的API是需要重新学习的,但是基本看名称就能大致了解它的意思。自动化测试过程中,用来用去其实也就那么几个api。使用几次,再结合api文档,开发难度不高。
自动化测试主要的难度在于识别对象,用这两个工具都很容易实现。开发的主要工作在于对流程的实现,都是使用最普通的语法即可。
2. 我现在掌握的Ranorex水平
官方帮助文档已经看过了,官方演示项目也都已弄懂,常用api已经掌握。
之前已经很多次在官网论坛上用英文向技术小组求助,都得到了热心回复。
认识了几个国内有Ranorex使用经验的网友。
用Ranorex做过一点简单的测试。
原先做过.NET开发,具备一定解决这方面技术问题的能力。