webdriver介绍&与Selenium RC的比较

Posted 开源优测

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webdriver介绍&与Selenium RC的比较相关的知识,希望对你有一定的参考价值。

什么是webdriver?

webdriver是一个web自动化测试框架,不同于selenium IDE只能运行在firefox上,webdriver能够在不同的浏览器上执行你的web测试用例。其支持的浏览器有:Firefox、Chrome、IE、Edge、Safari、Opera、phantomjs等等。

webdriver支持使用不同的编程语言来写测试脚本,这是selenium IDE所无法做到的。对于测试人员来说至少具备:

  • 掌握编程语言的判断分支语法

  • 掌握基本的循环语法

webdriver支持的编程语言有:

  • java

  • .net

  • php

  • python

  • perl

  • ruby

在本系列教程中,我们将使用python来写webdriver测试脚本。如果你对python的基本语法不够熟悉的话,请先参照《python简明教程》学习(建议两个小时内完成学习)。

Selenium RC和webdriver的区别

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

  • 它们都支持使用一种编程语言来设计你的测试脚本

  • 它们均支持驱动多种浏览器来进行自动化测试

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

1、架构

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

  • webdriver通过OS层级来控制浏览器

  • webdriver运行你使用你喜欢的编程语言的IDE来进行脚本开发

webdriver介绍&与Selenium RC的比较

webdriver架构图



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继续从你的测试脚本发送过来的指令中提取下一条指令,重复上述过程。

webdriver介绍&与Selenium RC的比较

Selenium RC架构图

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没有内置的命令模式来自动生成测试结果


更多精彩:





Hello,伙伴们
长按二维码关注我们吧!


以上是关于webdriver介绍&与Selenium RC的比较的主要内容,如果未能解决你的问题,请参考以下文章

Python selenium webdriver 基本使用

Selenium & webdriver.io 如何使用 executeScript?

selenium框架安装及webdriver安装

“Selenium-server-standalone.jar”和“Selenium Client & WebDriver”有啥区别?

Selenium eclipse 配置与 Webdriver 2 和 Selenium Java 客户端驱动程序

[Selenium+Java] How to use IntelliJ IDEA & Selenium Webdriver