几种常见自动化测试框架

        因为自己项目组所使用的自动化测试框架完全是自己开发的一套工具,语言也是不常用的TCL(基于C/C++开发)。其也面临各种问题,因此想了解下广泛使用的测试框架,可能是自己没有接触过这些,暂时转点资料过来,慢慢再完善自己的理解

       以下各种不同的框架基本都支持数据及关键字驱动,或者本来就是这些重要的测试思想的推动者。在实际应用中,有人称为数据驱动和关键字驱动的结合,有说话直接将关键字驱动看作数据驱动的升级。在这方面个人感觉各有侧重点,数据驱动源于数据和业务的分离以及对业务的控制,而关键字驱动可以看作测试业务的模块化。

 1、以QTP为核心的框架  (支持VB Script, 与C#, VB.NET结合比较好 )

  QTP是大家最常用的测试工具。而现在很多公司用的自动化测试框架都是以此为核心的

  以QTP为核心的自动化测试框架优点在于:适用性好,很多人都已经会用或者至少说可以简单应用,脚本也简单易懂,大多数无任何代码基础的测试人员都可以加入脚本录制和调试。

  我本人一直对QTP不太感冒的原因也就是它的缺点:对象库。这个词对自动化测试的tester们实在是个巨大的打击。我不去一一细数其罪行,但是,关键字的框架,灵活度实在不敢恭维。再加上QTP在对flex等的支持上实在是也让人欲哭无泪。如果说还有其他的,就是一旦应用于企业自动化测试框架,必然需要购买正版,价格的问题。。。


  2、RFT (支持JAVA,VB.net)

  Rational Functional Tester,IBM的产品。我一直对ibm产品颇具好感,不知道是不是由于第一台笔记本就买了IBM的缘故。跑题了,回来说这个框架。

  优点:其一是相比起QTP框架,灵活度要高。因为它最核心的find()。每个脚本里都会大量出现类似“new uiTestObject(find(atDescendant(".xxxx","xxxx",".xxxx","xxxx")))...”的语句,用来动态查找对象以解决对象识别问题。其二是对java的无缝连接,让很多人能更好更快的上手。

  缺点:首先还是俗一点,说这个价格。高于QTP的价格让很多公司难以接受。第二,尽管ibm的团队非常强大,但是我们可以看到,由于种种原因,RFT的使用率比较低,这就导致网上关于该框架的疑难问题解决方案较少。第三,根据亲身经历,RFT的国内技术支持太弱,有问题很难请到,并且其技术支持人员测试技术能力都较差。


  3、Ant+Selenium+Testng+Jenkins ( Ant脚本语言基于JAVA,selenium支持多种语言)

      Selenium是一个软件测试工具,Selenium分成Selenium IDE, Selenium RC (Remote Control), 和Selenium Grid. 他们都是基于Selenium Core的. 这里给你说说Selenium IDE和RC吧. Selenium IDE是Firefox的一个插件, 它可以录制一系列的过程(比如google中输入一个单词, 点搜索按钮,...,). Selenium IDE可以把这个过程录制号, 并且转化成多种语言, 比如:Java, C#, Perl, PHP, Python,等等吧.
       那么这时候我们就可以用这些语言对应的编译器(比如Java我们用ECLIPSE; C#用Visual Studio)把从Selenium IDE经过录制, 得到并转化好的程序代码在这些编译器里运行, 运行的时候, 程序会调用Selenium RC来实现对刚才这段录制过程的远程操作 (可以控制打开一个firefox或者IE的浏览器进行回放, 也就是测试的过程.也就是说Selenium可以用他所生成的各种语言来调用它(Selenium RC)进行测试.
   我这里说的 selenium 没有区分RC还是webdriver,两者各有千秋又互相补充,兼而用之即可。还是先说优点:第一:它开源不要钱!很多时候这是最关键的一点..当你在研究或推行一套框架的时候,价格是不得不考虑的因素。第二:灵活性,比RFT更加灵活,因为更加入了xpath(当然大型项目的脚本里xpath..慎用,尽量取id或稳定的属性)。加上配合IDE进行定位等,效果比较好。第三:相比RFT,资料更全面,用该框架的也越来越多。据我了解,北京一些中型公司也在应用类似以selenium为核心的自动化测试框架。第四:就是开源性可以方便我们进行二次开发,例如提取对json和xml的处理来实现的数据驱动等。

  缺点:第一:无论是RC还是Webdriver,对测试人员的编码水平有一定要求。同时ant,testng,hudson使用也都是小众,大多数人执行这个框架前需要有较长时间学习适应。第二:毕竟时间较短,不如QTP如此完善,但是我们可以期待其未来发展。也许3.0会带来一个巨大的变化。


  4、Mcafe

  这是百度内部使用的一套自动化测试框架,或者叫平台。外面当然也买不到,我有幸见识了一次,包含了虚拟机的集成分配直至自动化测试执行,非常之惊艳。优点一大把缺点就是买都买不到。。。也给了我们一个方向,自主开发的自动化测试框架也许才是最适合你的。


5,Robot Framework  (支持Python,java)

       Robot framework是诺西(NSN)开源的一套自动化测试工具,在通信设备自动化测试中很实用,它基于Python开发,主要模拟NMS网管配置数据到网元NODE,并读取配置看配置是否生效

      Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,具备良好的可扩展性,并且是一款开源软件,通常用于端到端的可接收测试和可接收测试驱动的开发。可以用于测试涉及到多种技术和接口的分布式的,异构的应用系统(如通信系统)。测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测试库中实现的关键词来在测试中运行程序。因为Robot Framework 是灵活和可扩展的,所以它很合适用于测试具有多种接口的复杂软件:用户接口,命令行,web service,编程接口等。

       具备以下特性:

      1.测试用例使用文本文件(TXT或者TSV文件)保存,使用制表符分隔数据。可以方便的使用任何文本编辑器,或者EXCEL编辑测试用例。也可以使用HTML格式创建用例。测试执行报告和日志是HTML格式,容易阅读。提供了命令行接口和XML格式的输出。可以与版本管理工具结合,进行持续集成。

      2.可以利用“标签”功能对测试用例进行分类和有选择执行。

      3.利用已有的关键字,测试人员可以创建自己需要的关键字,形成更高级别的行为。在对很多具有独立性的软件进行测试时是必须的。
      4.Robot Framework并不是一款像QTP一样的自动化测试工具。它是一个自动化测试框架,或者说是一个自动化测试平台。可以理解为可扩展性要好很多
      5.提供了测试执行事件的监听接口,并且可以自定义接口中的脚本。例如,某个用例执行前,“start_test”接口中的脚本就会被执行;用例执行结束后,“ end_test”接口中的脚本就会被执行。而测试人员可以自定义“start_test”、“end_test”这两个接口的脚本。
      6.Robot Framework是通过测试库识别被测对象、操纵被测对象,有很多自带的或者第三方的开源测试库。例如,使用“selenium2Library”库测试web客户端。此外还可以测试java客户端、Win32客户端、SSH协议的字符终端等。对一些通用的测试流程和模块能够较好的减少工作量。
      7.测试人员可以使用Python和java创建自己需要的测试库。
      8.提供了远程测试执行接口,可以进行分布式测试执行。

 

主体资料来源:http://www.51testing.com/html/03/n-822303.html

猜你喜欢

转载自blog.csdn.net/u010202588/article/details/38643727