让QTP走下神坛--SilkTest 卷土重来!自动化测试工具QTP和SilkTest横向PK

发表于:2013-7-04 15:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:songfun    来源:51Testing软件测试博客

  业内但凡玩过QTP的,多半都知道songfun的名字,多少读过几篇我写的关于QTP的文章。然而今天,作为捧红它的一员,我决定亲自推翻它,让它从神坛走下。

  前面博文说了QTP已死,这里要谈谈最近势头正劲的 SilkTest

  众所周知,自动化测试工具曾几何时三足鼎立,Mercury QTP/WinRunner系、IBM RobotJ (RFT)系、Borland Segue SilkTest系,但是几年下来,QTP在国内和国外都将同类工具远远甩在身后几条街。即使后起之秀Web界翘楚Selenium也只能将超越QTP作为自己终身己任,以至于连名字上都要以 Selenium(硒) 克一下它的偶像 Mercury(汞,硒解汞毒)。

  但是时过境迁,SilkTest 已经不再是当年的那个SilkTest,QTP也不再是当年的QTP。2013年的自动化测试工具因为QTP的裹足不前和SilkTest 的浴火重生变得有了味道。

  好吧,一定有人要站出来说QTP现在的市场份额在国内的仍然有60%,SilkTest还远未成气候,而Selenium只能进行B/S的自动化,不可能取代之……我只想说,这几年以来QTP并无太大建树,除了界面更加华丽,兼容性更差,更耗资源,内核未做更新,就是多了一些华而不实噱头级别的功能特性和某几个小功能——真的一直没有太大变化,按照这样的趋势,QTP很有可能成为下一个WinRunner。

  好吧,最近网站和论坛正在热捧 WinRunner,好多朋友连这个名字都没听过,跑个题,告诉大家 曾经的WinRunner就像今天的QTP一样统领自动化领域的武林,如果大家去看国外最大的SQAForum就会看到它的历史回帖数在今天仍然跻进 Top 3,但是如果你去 bbs.51testing.com 的论坛看看它目前的人气那真是令人嗟叹,整个季度的回帖数不足10篇!

  QTP可能会变成下一个WinRunner,作为使用了QTP 十年之久的我从感情上有些舍不得,但是必须面对的要去面对,我们应该拥抱变化。

  好吧,闲话少说,以下横向PK两大商业级自动化测试工具:

  (一)编程语言:

  QTP一直以来都使用 VBScript. 作为自己的引擎,这在一定程度上降低了学习的成本,确实吸引了很多初学者来学习和使用QTP。

  但 VBScript. 不是一个纯粹的面向对象编程语言,除了可以封装Class,是不能继承和多态的。直接一点说,这样天生缺陷使得QTP的重用性从骨子里就很差,执行效率还很低!

  而SilkTest呢,可以支持 .Net, C#, Java, 以及它自身的 4Test,这本身就可以吸引一大批编程基础扎实的开发人员参与到自动化的实施过程中,而它强大的面向对象基因,强大的重用性,强大的维护性(甚至可以轻而易举进行版本管理,学过QTP的同学都知道,QTP所谓的简单只是入门简单,后期维护是非常恐怖的),极高的开发效率更是远超QTP。

  (二)检查点(Checkpoint)

  QTP的检查点一向不伦不类,好像基于对象库(因为是在对象库中才能看属性),又好像脱离于对象库(因为不是所有的检查点都可以进行对象模式的维护管理,而Checkpoints和Test Objects是并列节点不是归属关系),这在开发过程中被很多朋友直接抛弃,改用其他手段做验证(比如经典的 GetRoProperty)。

  而SilkTest呢,直接通过代码秀出自己要检查的对象的属性等信息,简单易懂不说,维护方便很多——毕竟,难道你喜欢一边在Expert View里编程一边在对象库里看对象吗?累不累啊?

  (三)“录制/回放”

  QTP的录制分为:标准录制模式、低级别录制模式(WinObject对象模式)、模拟录制模式(模拟鼠标运动轨迹)。在视图上采用了业务专家(SME)的 Keyword View和编程人员的 Expert View。

  总体来说还算不错,除了专家视图模式下的编程功能太坑爹。

  而SilkTest呢,有 SilkWorkBench、Silk4J、Silk4Net、SilkClassic等一堆的IDE,支持VB.Net、C#、Java等IDE,真的觉得假如你是团队化开发自动化测试脚本的话,SilkTest的优势要比 QTP明显很多。

  (四)脚本

  QTP的脚本我一直不喜欢,因为不是纯文本。它在创建工程的时候(QTP中的工程叫Test,而不叫 Project),会生成一堆的资源文件,比如ObjectRepository.bdb、Resource.mtr,还有截图目录SnpaShots目录,而脚本代码放在 Script.mts 中,还偏偏在代码行后附着了 Active Screen关联的图片信息。这样导致的直接结果就是版本管理工具没法进行代码的冲突管理,比如merge操作。

  另外启动信息非要整在 Action0 这个目录里面,这种规划思路很不好,过度分离的结果是你维护的时候不得不关注一大堆地方。

  而SilkTest呢,就是单一的脚本文件,我即使不开工具也可以直接修改。简单即美,难道不是么?

31/3123>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • luke2xue
    2013-12-27 15:05:22

    我是开发人员,不敢说精通,也是很熟悉Java,C/C++等开发;以前也参与过自动化测试的项目,但是作为开发人员参与的,而不是作为框架设计人员;现在到新公司独立开展自动化测试框架,在选择基础框架时,拜于盛名,一度试图使用QTP or Rational,直到今日看到此贴,如醍醐灌顶,茅塞顿开;感谢您让我少走很多弯路.

  • aspstar
    2013-7-16 22:24:48

    我们用QTP,主要用它的对象识别和回放,数据、脚本逻辑都是在框架中管理。最终由框架自动化生成QTP的代码,如果能搞定个一低成本的对象识别和回放的工具代替QTP还是不错的

  • songfun
    2013-7-10 19:29:28

    sakuragi0 ,如果你是停留在这个层面的理解上,不管你做的是测试还是开发,都只能说明你的认知和水平都还是非常一般。

  • zhangyuan926
    2013-7-05 17:25:22

    测试想做的好还是要懂代码的,支持!

  • dennyqiang
    2013-7-05 07:45:58

    楼上的兄弟,试问哪个测试技术高手不是精通程序设计的?证因为有你这样的观点才会导致测试裹足不前。

  • sakuragi0
    2013-7-04 17:27:18

    你觉得测试人员学会精通编程了,还会甘心只做测试吗?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号