注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

世界的瞭望哨

认识自己 认识世界

 
 
 

日志

 
 

Selenium2.0(Webdriver)自动化实践小结系列【1】- 浏览器选型  

2012-12-06 23:09:45|  分类: 测试技术和工具 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
使用Selenium2.0(Webdriver)有相当一段时间了,也积累了一些经验,逐步整理成系列小博文,第一讲是关于浏览器的选择

我们知道,Selenium是号称支持N种浏览器的,但对于每种浏览器的支持是不一样的,同时每种浏览器本身又都有自己的一些特性

Firefox
Selenium从1.0时代开始就是对于Firefox支持最好,但是在我搭建Dagger框架的时候,Firefox是首先被我排除的
原因在于Firefox的启动速度实在是太慢了,普通的机器一般在10~15s之间才能打开Firefox
这里还必须考虑到我们的用例设计场景:我们每一个用例都力求只测试1个功能点,UI步骤尽量少,使用例简单明了,短小精悍;同时,为了保证充分的隔离性,每一个用例都会重新开启一个浏览器;所以,我们会有N多用例(执行时间一般在20~60s),同时,这些用例都会新开一个浏览器
而且在我们本地调试用例的时候,每次都要等待N久Firefox才慢吞吞起来,真是严重打击心情

在这样的情况下,速度堪比拖拉机的Firefox就被我咔咔了

IE
IE是一个很重要的浏览器,对于中国用户来说远比Firefox重要,但实践表明,Selenium(我们目前使用的是Selenium2.25)对于IE的支持是不靠谱的

列举几个坑:
- 在iframe内部,IE执行click操作是没有效果的,而且不会抛出异常
- 同一台测试机上是不能同时打开多个IE并使用不同账号登陆同一个网站的 —— 同一台PC上的IE是共享cookie的。对于我们而言,这意味着我们不能在单台测试机上并发运行用例,也就浪费了测试机资源;与此同时,Firefox与Chrome都是没有这个问题的
- 在较早的Selenium版本,例如我们之前使用的2.20,使用IE浏览器时会造成JVM崩溃==!
- 在我们目前使用的Selenium版本(2.25),IE仍然存在这抽风性卡死的问题 —— 在启动一个新IE浏览器的时候会卡死,而且一卡就是不多不少3小时,然后才会跑一个异常出来
以上除了第二条是IE本身的特性,其他都是在Selenium官网挂了号的Bug
其它还有不少问题,在此不列举了

IE有一个优点,从大概2.25开始,它的驱动文件从Selenium的Jar文件里面剥离出来,成为一个单独的.exe文件,这对于后续的升级维护是比较方便的;不须要升级Jar文件,直接升级.exe文件就行了

Chrome
妈妈的,终于到Chrome

Chrome现在是我们UI自动化的主打浏览器
- 启动速度快,一般在1~2s,秒杀Firefox
- 支持好,chromedriver.exe应该是Chromium团队在维护,质量靠谱
- 升级方便,只要替换chromedriver.exe就可以实现升级(这里吐槽一下,地球人已经不能阻止chrome升级了,导致chromedriver.exe版本会跟不上)
- 内存占用少,单测试机并发多开浏览器毫无压力
- 我们目前基于Chrome已有几百个用例,几乎都可以很好的适应

暂无明显缺点

其它
Selenium还支持Safari,Opera神马的,反正我是没用过

第一回完
  评论这张
 
阅读(2560)| 评论(5)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018