初识selenium
Selenium 工具集
Selenium WebDriver
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 被移除了。
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没有内置的命令模式来自动生成测试结果
参考文档:
本文来自博客园,作者:margo,转载请注明原文链接:https://www.cnblogs.com/ZMargo/articles/11769777.html