摘: http://blog.sina.com.cn/s/blog_ac7b359c01015cbo.html
最近通过各种渠道发现大家对一些测试工具的基本情况不太清楚,经常会问类似于watir与watir webdriver的区别,我有1个项目,是用watir还是用selenium webdriver呢,之类的问题,在这里笔者不才略微总结一下,希望能给大家一个较为清晰的认识。
Waitr与Watir-WebDriver有什么区别?
Watir是非常优秀的一款自动化测试工具。其使用ruby作为脚本语言进行开发,能够在ie上实现元素定位、操作等自动化任务;
Watir WebDriver是Selenium WebDriver的一个封装。简单来说如果selenium webdriver是手机上的安卓系统,那么watir webdriver就是MIUI。watir webdirver就是将selenium webdriver包装了一下,使得selenium webdriver的api更加的友好。当然watir webdriver也不是毫无根据的对selenium webdriver进行封装,watir webdriver使用了watir的api组织形式对selenium webdriver进行封装,这样watir的代码跟watir webdriver的代码看上去就很”相似”了。这也是大家无法分辨watir与watir webdriver区别的原因。
另外watir webdriver相比较watir有如下的一些优点:
watir webdriver支持多浏览器, 而watir只支持ie
watir webdriver支持html5, 而在这方面watir不太明确
watir webdriver对弹出框(js alert confirm)的处理更加友好
watir webdriver支持移动设备,如iPhone和androrid
QTP和watir的区别是什么?
首先最明显的区别是:QTP是商业工具,其不是免费的;而watir是开源的测试工具,使用免费。
QTP支持脚本的录制,而watir不可以;
QTP的脚本语言是vbscript,而watir使用ruby进行脚本的开发;
QTP上手很容易,一般测试人员哪怕不会脚本语言都可以通过QPT录制回放脚本来进行用例的开发;相对来说,watir则需要一定的代码基础;
QTP对IE和Firefox都有支持,但是watir只支持IE(尽管firewaitr支持firefox,但是工具目前更新速度不快,可以忽略);
QTP是有软件界面的,而watir只是一个代码库;
那么我应该选择QTP还是watir?
如果预算允许且自动化测试对浏览器的兼容性要求不高的话是可以选择QTP的;
如果预算有限,但是项目只要求支持IE的话建议选择watir,学好watir测试人员日后的发展有一定的好处;
如果预算有限,项目又要求支持多浏览器,那么推荐使用watir webdriver;
我应该选择watir webdriver还是selenium webdriver?
从本质上说selenium webdriver 和 watir webdriver是没有任何区别的,就跟中国男足输1个和输10个是没有任何分别一样。
从笔者的经验上来说,watir webdriver的api更加的丰富和友好,如果你可以使用ruby作为开发语言的话,强烈推荐watir webdriver。
如果你的项目要求你使用java javascript之类的语言,那么你只能选择selenium webdriver了。
我是新手,这么多测试工具我该选择哪一个作为入门的学习工具呢?
如果你有决心有时间的话,那么推荐watir作为web测试的入门工具,原因是你可以通过watir学习到ruby,js,html,dom等一系列的知识;然后再转watir webdriver 甚至是selenium webdriver,学习曲线是相对平滑的;
如果你有决心但没时间却又急于求职的话,那么用熟QTP也是一个捷径。
selenium和webdriver的关系是什么?
webdriver是selenium2的一部分;
webdriver提供了多浏览器间统一的api,并将会持续更新,而selenium1将不再维护;
selenium2等于webdriver加selenium1
webdriver比selenium强在哪儿?
wd的api比se更加的面向对象,更加友好;
wd解决了se的软肋同源问题;
wd多浏览器间的行为更加一致;
wd支持iphone和安卓;
se1不再更新,而webdriver社区非常活跃。
作为新人,我想学习脚本语言,我该从哪一门开始呢?
如果你想做web方面的自动化而又想选择一门脚本语言开始的话,笔者推荐javascript。因为js配合html能做出多种效果,能够给让新人很快的获得成就感。另外前端人员目前相对紧缺,学好js无疑能够让你的身价有一定的增加。
如果你只是想学一门脚本语言,那么建议学习python,python的理念是做1件事件从来只有一种方法,尽管没有选择,但是至少也不会混乱和迷惑。另外python社区非常活跃,氛围很好。
如果你想学习watir和waitr webdriver,那么就从ruby开始。ruby入门容易精通难,而且经济价值没有py和js那么立竿见影。
总是脚本语言殊途同归,修行还是要看个人。