接触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:能够在多个环境中执行,也能并行执行,能够大幅度提高测试效率。

selenium1,selenium2,watir的比较的更多相关文章

  1. 自动化测试之 seleniumIDE,Selenium1,selenium2和testNG入门

    由于前期三个月公司的项目一直在改需求阶段,一直是手动测试,现在项目雏形以及基本页面功能都确定下来,为了不让自己陷入天天测同一功能的无限循环中,故开始自动化测试的学习之路,也为自己以后的发展铺铺路. 一 ...

  2. Selenium1 Selenium2 WebDriver

    1.Selenium 1 原理 (1).测试用例(Testcase)通过Client Lib的接口向Selenium Server发送Http请求,要求和Selenium Server建立连接. 为什 ...

  3. selenium + python自动化测试unittest框架学习(一)selenium原理及应用

    unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...

  4. Selenium家谱

    自动化测试一词也算是整个测试行业里面比较热门的一个词儿,工资高,前景好,有实力,有态度等等,很多企业的管理者也在不断的扩大自己的队伍和职能,这也是导致自动化测试比较流行的原因之一.但是很多企业做自动化 ...

  5. web自动化测试启示篇

    1.首先,对于想学自动化测试的朋友,那么你得懂一种语言,常用的比如Java或者Python.因为没有语言基础,你是写不出自动化脚本的. 我个人选择java 2.有了开发语言的铺垫,那么开始入手Sele ...

  6. 简述-selenium对web实现自动化测试

    首先,我是基于python进行对selenium操作和使用的,主要分为selenium的实现原理和selenium的操作这两大部分的简单分享(由于本人水平有限,仅做基础的概述和总结): 一.selen ...

  7. 在selenium2.0中使用selenium1.0的API

    Selenium2.0中使用WeDriver API对页面进行操作,它最大的优点是不需要安装一个selenium server就可以运行,但是对页面进行操作不如selenium1.0的Selenium ...

  8. Selenium2怎么调用selenium1中方法

    虽然selenium1.0已经成为过去时,现在都用selenium2.0,但是如果想要在代码中调用selenium1.0的api怎么办,看下面 WebDriver driver = new Chrom ...

  9. Watir、Selenium2、QTP区别

    1.支持的语言 Watir:ruby Selenium2:支持多种语言,如:python,ruby,java,c#,php,perl,javascript QTP:vbscript 2.支持的浏览器 ...

随机推荐

  1. 使用Ajax

    ASP.NET 使用Ajax   之前在Ajax初步理解中介绍了对Ajax的初步理解,本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便 ...

  2. IP:网际协议

    IP:网际协议 1.概述      IP是TCP/IP协议族中最为核心的协议.所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输.      IP提供不可靠,无连接的数据报传送服务. ...

  3. Reeder Web版

    Reeder Web版 访Reeder界面效果 一直很欣赏触控手势的代码实现,所以最近折腾了个Javascript触控手势库--JTouch,效果还有诸多不完善之处,苦于硬件设备不完善,针对ie10的 ...

  4. jquery 表单 清空

    做了个复杂查询的页面,字段太多了,填了一次,想清空挺麻烦的 $('#myform')[0].reset(); 虽然reset方法可以做到一部分,但是如果你有个元素是这样的 <input name ...

  5. NSLocalizedString不起作用

    程序TESTAPP 环境:XCODE 4.6 OSX  10.8.4 MAC BOOK AIR 2011年版 代码 [doneButton setTitle:NSLocalizedString(@&q ...

  6. PRJ: Split a nodes-map into some triangles

    PRJ: Split a nodes-map into some triangles Share the source codes of this algorithm to your guys... ...

  7. 《jQuery权威指南》学习笔记之第2章 jQuery选择器

    2.1 jQuery选择器概述 2.1.1 什么使选择器 2.1.2 选择器的优势: 代码更简单,完善的检测机制  1.代码更简单   示例2-1     使用javascript实现隔行变色 < ...

  8. C#:using与.net对象销毁

    一 . 1.using 语句获取一个或多个资源,执行一个语句,然后处置该资源.     2.using 语句: using ( 资源获取 ) 嵌入语句 3.资源获取: 局部变量声明 表达式 资源是实现 ...

  9. asp.net mvc ActionResult

    定义在Controller中的Action方法大都返回一个ActionResult对象.ActionResult是对Action执行结果的封装,用于最终对请求进行响应.ASP.NET MVC提供了一系 ...

  10. SQLite 约束

    约束是在表的数据列上强制执行的规则.这些是用来限制可以插入到表中的数据类型.这确保了数据库中数据的准确性和可靠性. 约束可以是列级或表级.列级约束仅适用于列,表级约束被应用到整个表. 以下是在 SQL ...