接触web方面的自动化测试,会接触几个常用的工具,selenium1,selenium2,watir 有的时候总是混淆,那么他们的优缺点啥的呢,在让你给项目选自动化框架,会选择哪个???

1,语言的支持:selenium1和selenium2均支持多种语言,常用的事python,java,ruby;

watir只支持ruby

2.  浏览器的支持:selenium1和2支持多种浏览器,例如:ie,chrome,火狐,opera

watir:只支持ie

3. 实现原理:

selenium1:基于浏览器的开源自动化工具,即rc,由三个部分组成,seleniumcore,httpproxy,launcher,主要是selenium core,完全由javascript组成

主要操作流程如下:即rc将受到的selenium的方法解析成对应的js,发给浏览器页面中的core执行来操作页面

1. 测试用例通过Http请求建立与 selenium-RC server 的连接

2. Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy

3. 执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码

4.Selenium Core执行接受到的指令并操作

5. 当浏览器收到新的请求时,发送http请求

6. Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面

7. Selenium Server中的Http Proxy把接受到的页面返回给浏览器。

但也有缺点:浏览器对js的限制同时也限制的selenium1,也不支持鼠标和键盘的操作,对话框和弹出框不支持

selenium2: =selenium1+webdriver,即结合了selenium1和webdriver的最佳特性。Selenium 1 和 WebDriver 合并成一款性能更佳的产品 Selenium                        2(或 Selenium WebDriver),Selenium 2 具有来自 WebDriver 的清晰面向对象 API,并能以最佳的方式与浏览器进行交互。Selenium 2                       不使用 JavaScript 沙盒,它支持多种浏览器和多语言绑定。

webdriver可以直接操作html unit,效率更高,更可以规避某些浏览器对js的限制,也不用像selenium1那样需要启动selenium sever端了!!!

watir:封装了浏览器的ole/com接口来实现的

综上,最优的选择是selenium2

ps:再说明selenium的几个工具: selenium ide 和 selenium grid

ide:是一个火狐的插件,用来构建脚本的初级工具。具有录制的功能,能够记录用户的操作,支持多种编程语言

grid:能够在多个环境中执行,也能并行执行,能够大幅度提高测试效率。

最新文章

  1. 【翻译】如何在AJAX生成的内容中再次运行Prism.js
  2. AIX 环境下减小系统page space空间
  3. adb 服务端口2037被占,导致adb和appium无法工作
  4. php 利用activeMq+stomp实现消息队列
  5. Poj 1061 青蛙的约会(扩展GCD)
  6. 架构师之路(39)---IoC框架
  7. perl post json数据
  8. 深入浅出OpenStack云计算平台管理(nova-compute/network)
  9. 乐在其中设计模式(C#) - 策略模式(Strategy Pattern)
  10. 2g-3g
  11. 菜鸟学Java(二十一)——怎样更好的进行单元測试——JUnit
  12. D5
  13. [Hive_add_8] Hive 常用参数配置
  14. Java接口自动化测试之Maven项目的创建(一)
  15. BBS-项目流程分析-表的创建
  16. SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
  17. word黑底白字
  18. word 排版用到双直线、波浪线、虚线 、直线、隔行线等技巧
  19. 8. 利用反射机制, ListArray,intent来实现多Activity的切换
  20. mysql5.7.20多实例编译安装

热门文章

  1. PostgreSQL 简明使用说明
  2. 论移动端Hybid开发
  3. Dubbo源码学习--服务是如何发布的
  4. [转]HTTP请求模型和头信息参考
  5. Bootstrap实现弹出框和提示框效果代码
  6. Git学习笔记(一)创建版本库并添加文件
  7. Linux软件安装管理 - CentOS (三)
  8. sql Cursor的用法
  9. CFround#380 div2
  10. java学习笔记-set