最近在研究自动化测试框架,也和网上的很多朋友聊了很多各种自动化框架的实现,我对其总结归纳比较下。当然,一家之言,仅供参考:
1、以QTP为核心的框架
QTP是大家最常用的测试工具。而现在很多公司用的自动化测试框架都是以此为核心的。我在触自动化测试之初最先上手的也是QTP。
以QTP为核心的自动化测试框架优点在于:适用性好,很多人都已经会用或者至少说可以简单应用,脚本也简单易懂,大多数无任何代码基础的测试人员都可以加入脚本录制和调试。
我本人一直对QTP不太感冒的原因也就是它的缺点:对象库。这个词对自动化测试的tester们实在是个巨大的打击。我不去一一细数其罪行,但是,关键字的框架,灵活度实在不敢恭维。再加上QTP在对flex等的支持上实在是也让人欲哭无泪。如果说还有其他的,就是一旦应用于企业自动化测试框架,必然需要购买正版,价格的问题。。。
2、RFT
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
这是我现在正在研究并使用的框架。(ps:jenkins这...还没用到。原来听说了hudson的强大,这个升级版估计会更有使用价值,未来研究)我这里说的selenium没有区分RC还是webdriver,两者各有千秋又互相补充,兼而用之即可。还是先说优点:第一:它开源不要钱!很多时候这是最关键的一点..当你在研究或推行一套框架的时候,价格是不得不考虑的因素。第二:灵活性,比RFT更加灵活,因为更加入了xpath(当然大型项目的脚本里xpath..慎用,尽量取id或稳定的属性)。加上配合IDE进行定位等,效果比较好。第三:相比rft,资料更全面,用该框架的也越来越多。据我了解,北京一些中型公司也在应用类似以selenium为核心的自动化测试框架。第四:就是开源性可以方便我们进行二次开发,例如提取对json和xml的处理来实现的数据驱动等。
缺点:第一:无论是RC还是Webdriver,对测试人员的编码水平有一定要求。同时ant,testng,hudson使用也都是小众,大多数人执行这个框架前需要有较长时间学习适应。第二:毕竟时间较短,不如QTP如此完善,但是我们可以期待其未来发展。也许3.0会带来一个巨大的变化。
4、Mcafe
我也不知道是不是这样拼这个框架,这是百度内部使用的一套自动化测试框架,或者叫平台。外面当然也买不到,我有幸见识了一次,包含了虚拟机的集成分配直至自动化测试执行,非常之惊艳。优点一大把缺点就是买都买不到。。。也给了我们一个方向,自主开发的自动化测试框架也许才是最适合你的。
欢迎大家发表意见。