二、自动化技术哪家强,QTP对比看端详

2.1 对比范围

  了解了QTP 是进行自动化测试的完整框架,能完成自动化测试的框架还有很多,本篇对如下框架进行一下对比。

  提到自动化测试Selenium是不得不提的。Selenium是ThoughtWorks员工在业余时间开发并维护的开源项目,并且在 ThoughtWorks的项目中被广泛应用。简单地说,Selenium是一个自动化的Web应用功能测试框架。在Selenium出现之前,当时最著 名的Web应用功能测试工具Mercury Quanlity Center,价格不菲,开发开源的人命名为Selenium。“Mercury”有“水银”的意思,而“Selenium”是硒元素,正是专解汞中毒的特效药。

  目前还有一个框架慢慢兴起,也有很多人在使用,就是Robot Framework。Robot Framework是一个基于Python可扩展地关键字驱动的测试自动化框架,使用Apache License 2.0,由Robot Framework Foundation开发和赞助。Robot Framework被广泛地使用在端到端地验收测试中,生态体系非常丰富。

  再说一个老牌框架,RFT:IBM Rational Functional Tester。这是一款先进的、自动化的功能和回归测试框架,它适用于测试人员和GUI开发人员。基础是针对于Java、.NET的对象技术和基于 Web 应用程序的录制、回放功能。工具为测试者的活动提供的自动化的帮助,如数据驱动测试。

  后起之秀有Watir,全称是“Web Application Testing in Ruby”,发音类似“water”。Watir 是一个使用 Ruby 实现的开源Web 自动化测试框架,相对于那些庞大的商业工具来说,它很小巧,也很灵活,提供的功能也足够用。

   还有Sahi,它是一款印度公司 Tyto Software 开发的成熟的开源 Web 自动化测试框架。Sahi 简单易用,能良好支持 Ajax 和 Web2.0 技术,同时适用于敏捷和传统的不同测试模式。

  提到自动化测试Loadrunner和Jmeter也是说的非常多的,但这两款为人熟知的更是其性能压力测试方面,虽然也能进行接口级的验收测试,终究术业专攻不一致。这里我们聚焦于UI的自动化测试。

   上面提到的几个框架,总结对比如下。

工具 支持语言
支持系统 费用 IDE 一句话描述
QTP VBS C/S,Web 商业收费 UFT 自成体系
Selenium Python,Ruby,Java Web 开源免费 IDE 自己动手,丰衣足食
Robot Framework Python,Java C/S,Web 开源免费 RIDE 第三方库的搬运工
RFT Java,C# C/S,Web 商业收费 RFT 就像Java一样
Watir Ruby Web 开源免费 ScITE Ruby使用COM的Selenium
Sahi Sahi,Java,Ruby Web 开源收费(有免费版) Twist 一股清流


2.2 详细说明

    上面的对比是大概的方向,这里并没有对是否能录制进行对比。笔者认为录制功能是个鸡肋,很少有成功的自动化项目是依赖录制完成的。这个功能只能是个辅助,更多的是用来说服领导的理由。

   QTP使用VBS语言,支持桌面以及Web系统,有非常完备的生态系统,IDE也非常成熟。可以说是自成体系。

   Selenium是非常好的一个框架,但它的IDE是非常简陋的,基本上只有刚刚学习的时候会玩两下。Selenium实际是一套Web操作的库,不论是1还是2,都需要使用者自己设计。包括用例管理、报告、容错都需要自己编写代码,所以是“自己动手,丰衣足食”。

  Robot Framework最近几年用的人多了些,笔者觉得是顺了Python的风。如果用Jython就费劲了,也不建议使用,Python提供的库实在太丰富了。而RF就是借用各种开源的库,让自动化测试脚本编写就像是再填写Excel。所以笔者描述为“第三方库的搬运工”。

  RFT是IBM出品的,肯定是精品。笔者没有详细使用过,写过几个例子脚本,用起来“就像Java一样”。IDE和Ecplise一样,所以熟悉Java的人很容易上手。

    Watir使用Ruby语言,有自己的IDE,其原理是通过Ruby调用系统的COM组件,之后为所欲为。整体的脚本设计需要动的脑子还是比较多的,所以笔者认为Watir实际就是“Ruby使用COM的Selenium”。

    Sahi的开创性比较强,最近准备好好研究一下。不同于Selenium、RF(实际是Selenium2library)、Watir、RFT、QTP的基于DOM树的识别方法,Sahi是通过页面的关键字进行对象识别,能够达到所见即所得。它提供的_near、_under等关键字,从思路上就是很具有创新性的。对于富客户端框架,笔者看好Sahi,感觉是“一股清流”。

    

    今天对QTP以及其他自动化测试框架进行了对比,具体项目选择哪个,需要非常慎重的考虑。但可以确定的是,没有一条路是没有坑的,自动化没有说的那么“自动化”,是要下苦功夫、下大力的。

 



看完本文有收获?请分享给更多人

关注水滴测试,不知不觉变大牛

你可能感兴趣的:(QTP实战)