由于测试工程师经常会遇到许多循环重复劳动,非常枯燥乏味,给测试工程师带来了许多不必要的重复任务,因此,为了减少测试从业人员的工作量,自动化测试工具就这样诞生了。
目前,市面上的自动化测试工具有很多,选择面也非常的广,比如目前全球市场占有率最高的QTP,还有SilkTest、WinRunner、Watir、Rational Robot、TestComplete、RFT等。这些都是目前主流的自动化测试工具,我们再来参考一下Indeed.com网站提供的一项从?2005年~2010年的主流自动化测试工具趋势分布图,如图1-2所示。
图1-2
从图1-2中可以分析出,从2005年~2006年左右,WinRunner一直是主流地位,占有率最高,而从2007年开始,QTP慢慢地兴起,开始有超越WinRunner的势头,这段时间Mercury已经停止了WinRunner的版本更新、下载以及服务,而把主要战略方向转投向他们近几年非常成功的QTP。从2007年后半年开始,WinRunner开始走下坡路,而此时QTP和Selenium正以十分迅猛的势头赶超上来。直到今天,QTP成为了最终的霸主,而Selenium排行老二,WinRunner只能位居第三,其余自动化测试工具基本没有多大的变化。不过趋势图有些地方还是只能作为参考的,而且这张数据图的出处在国外论坛,不能完全反应国内的一些情况。作者个人感觉目前Web测试中开源的Watir测试框架在全球也有一定的市场占有率。那么接下来我们就来看一下商业化自动化测试工具QTP的实力。这里作者就拿QTP与Watir进行一个简单的对比作为参考,如表1-1所示。
表1-1 QTP和Watir对比
功 能 | QTP | Watir |
录制 | 支持 | 不支持 |
被测系统 | 支持B/S 和C/S | 不支持C/S |
对象识别 | 强 | 弱 |
对象库 | 支持 | 不支持 |
IDE | 强 | 弱 |
回放 | 速度快 | 高亮定位 |
脚本编写 | 方便 | 快速 |
支持语言 | VBScript | |
函数库 | 支持 | 支持 |
测试结果 | 支持 | 需要开发扩展 |
与其他测试工具联动 | 支持 | 不支持 |
自身扩展 | 弱 | 强 |
价格 | 昂贵 | 免费 |
可以看出,在表1-1中,QTP很多功能都是Watir无法比拟的。当然,此表也只是列举了一些表面功能上的对比,QTP还有许多更深层次的功能是其他任何自动化测试工具所无法比拟的。不过呢,任何事物都有两面性,有好的一面也总有不大好的一面,QTP最大的缺点就是价格相当昂贵,而且由于其商业工具的特殊性,所以不可能开源,导致无法对测试工具本身的核心进行个性化的扩展定制。这点Watir就比较好了,虽然有很多功能没有QTP那么强大,但其开源的特性使得我们可以对其进行随意的修改和扩展,可以把需要实现的功能进行二次扩展开发,同样也可以使其成为一款非常强大的自动化测试工具。不过这肯定需要非常强大的编程功底以及一定的开发工作量,需要投入大量的时间和精力。
从下一章开始,本书将对自动化测试工具QTP进行深度的剖析,同时结合大量新鲜实例,使读者能够在实际项目中掌握QTP的应用。内容会由基础核心、到高级扩展、到领先技术、再到框架展示,拨洋葱式的层层深入,让读者能够由浅入深地掌握好测试自动化这一门技术。