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的架构更为复杂。
在运行测试脚本前必须先启动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没有内置的命令模式来自动生成测试结果
更多精彩: