查看原文
其他

webdriver介绍&与Selenium RC的比较

苦叶子 开源优测 2022-11-13

什么是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的架构更为复杂。

  • 在运行测试脚本前必须先启动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继续从你的测试脚本发送过来的指令中提取下一条指令,重复上述过程。

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


更多精彩:

  1. python selenium2 架构说明

  2. python selenium2示例 - 同步机制

  3. python selenium2示例 - Page Object Model

  4. python selenium2示例 - 利用excel实现参数化

  5. python selenium2示例 - 生成 HTMLTestRunner 测试报告


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


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存