初识selenium

Selenium 工具集

 

Selenium WebDriver

Selenium WebDriver 是按照Server-Client 的模式设计的。

Server就是 Remote Server,可以是任意的浏览器。当我们的脚本启动浏览器后,该浏览器就是Remote Server,她的职责就是等待 Client 发送请求并做出响应。

Client 端简单说就是我们写的测试脚本。脚本中的一些行为比如打开浏览器,跳转到指定的 URL 等操作就是以 http 请求的方式发送给被测试的浏览器,也就是Remote Server。Remote Server接受请求,执行相应操作,并在 Response中返回执行状态、返回值等信息。

WebDriver 曾经是 Selenium 的竞争对手,也就是说 Selenium 2 是 Selenium 和 WebDriver 两个项目的合并,即 Selenium 2 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API。

WebDriver 是 Selenium 2 主推的工具,事实上WebDriver是Selenium RC的替代品,因为Selenium需要保留向下兼容性的原因,在 Selenium 2 中, Selenium RC才没有被彻底的抛弃,如果使用Selenium开发一个新的自动化测试项目,那么我们强烈推荐使用Selenium2 的 WebDriver进行编码。另外, 在Selenium 3 中,Selenium RC 被移除了。

Selenium WebDriver提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应用程序
Selenium 1.0 + WebDriver = Selenium 2.0   Selenium 2 中将两者合并的,通常我们把Selenium 2 称为 WebDirver

SeleniumGrid

帮助工程师使用Selenium API控制分布在一系列机器上的浏览器实例,支持并发运行更多测试。

SeleniumIDE

 

Selenium IDE 是 Chrome 和 Firefox 的扩展插件.支持用户录制和回访测试。录制/回访模式存在局限性。

selenium RC

在webdriver发布前selenium1.0版本叫做selenium remote control,简称Selenium RC。Selenium 1.x称为Selenium(Selenium1.x 时通常指的是 Selenium RC,所以 Selenium 也指 Selenium RC)

 

 

Selenium RC和webdriver的区别

 

在webdriver发布前selenium1.0版本叫做selenium remote control,简称Selenium RC。webdriver和Selenium RC之间有以下共同的特色:

 

  • 它们都支持使用一种编程语言来设计你的测试脚本
  • 它们均支持驱动多种浏览器来进行自动化测试

 

那它们之间有什么区别呢?接下来让我们一起看一看它们的区别:

 

1、架构

 

相比Selenium RC的架构,webdriver的架构更加简洁。

 

  • webdriver通过OS层级来控制浏览器
  • webdriver运行你使用你喜欢的编程语言的IDE来进行脚本开发

 

Selenium RC的架构更为复杂。

 

  • 在运行测试脚本前必须先启动Selenium RC Server
  • Selenium RC Server扮演着浏览器和测试脚本之间通信的桥梁角色
  • 当开始运行测试脚本时,Selenium RC Server会Selenium Core(js代码)注入到浏览器中以达成控制浏览器
  • 一旦Selenium Core被注入到浏览器中,Selenium Core就会开始接收并转发来自Seleniun RC Server的测试指令
  • 当测试指令接收后,Selenium Core就会把它们当做js来执行
  • 浏览器按照Selenium Core的指令进行操作,并将执行结果返回给Selenium RC Server
  • Selenium RC Server将接收到的结果返回给你的测试脚本
  • Selenium RC Server继续从你的测试脚本发送过来的指令中提取下一条指令,重复上述过程。

 

2、速度

 

在运行速度方面,webdriver会远远好于Selenium RC。原因是Webdriver直接调用浏览器原生API进行驱动,而Selenium RC则通过Selenium Core(javascript实现)来间接驱动浏览器。

 

3、交互机制

 

  • webdriver直接与浏览器进行交互
  • Selenium RC通过Selenium RC Server中转才能与浏览器进行交互

 

4、API

 

  • Selenium RC的API复杂冗余,不利于学习掌握
  • Webdriver的API简洁,只要掌握几个常用的即可进行测试

 

5、支持的浏览器

 

  • Selenium RC只能驱动可视化的浏览器
  • webdriver除了驱动可视化的浏览器,还可以驱动内存模式的浏览器,比如HtmlUnit browser,phantomjs

 

webdriver的局限性

 

  • webdriver无法及时的支持最新版本的浏览器,每次浏览器升级后,需要下载新的驱动程序。
  • webdriver必须基于脚本模式开发测试用例

 

总结

 

  • webdriver支持使用多种编程语言进行跨浏览器的web测试
  • webdriver的强大在于支持N中编程语言来设计和实现测试
  • webdriver执行速度更快是因为其简洁的架构
  • webdriver直接驱动浏览器
  • webdriver支持内存模式的浏览器
  • webdriver不能实时的支持最新版浏览器
  • webdriver没有内置的命令模式来自动生成测试结果

参考文档:

 

selenium和webdriver区别

Selenium WebDriver

Selenium Projects官网

 webdriver介绍&与Selenium RC的比较

posted @ 2019-10-31 10:25  margo  阅读(113)  评论(0编辑  收藏  举报