5种常用de自动化测试框架(优点以及缺点)
以下各种不同的框架基本都支持数据及关键字驱动,或者本来就是这些重要的测试思想的推动者。在实际应用中,有人称为数据驱动和关键字驱动的结合,有说话直接将关键字驱动看作数据驱动的升级。在这方面个人感觉各有侧重点,数据驱动源于数据和业务的分离以及对业务的控制,而关键字驱动可以看作测试业务的模块化。
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.提供了远程测试执行接口,可以进行分布式测试执行
结语:看完的朋友点赞收藏加关注,对软件测试感兴趣加裙,644956177里面各种资源和资深大佬。
上一篇: Struts
下一篇: 实现一个简易的对等式异步通信框架