A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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以及其他自动化测试框架进行了对比,具体项目选择哪个,需要非常慎重的考虑。但可以确定的是,没有一条路是没有坑的,自动化没有说的那么“自动化”,是要下苦功夫、下大力的。
---------------------
转载,仅作分享,侵删
原文:https://blog.csdn.net/wanglian2017/article/details/80054698


1 个回复

倒序浏览
奈斯,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马