selenium1.0 vs 2.0
2016-04-28 08:59
417 查看
计划使用selenium做一个web端的自动化测试,开始在网上找一些资料的时候,很多说到selenium IDE与selenium RC,后来发现,原来这是selenium1.0版本,在网上查找selenium1.0与selenium2.0的区别,总结如下:
从上图可以看出,selenium1.0包括:selenium IDE、selenium Grid、selenium RC三部分
其中:
selenium IDE:firefox的一个插件,可以录制和回放脚本
selenium Grid:用于实现分布式测试。使用Grid,可以同时在多台机器上和异构环境中并行运行多个测试事例
selenium RC:selenium核心部分,可以实现利用selenium的代理服务器来实现访问浏览器实现自动化测试
selenium RC可分为:Client和Selenium Server
1. client:实现自动化脚本
2. Selenium Server:负责控制浏览器行为
Selenium Server分为3部分
Launcher:启动浏览器
Http Proxy:selenium Server的Http代理
Core:嵌入到浏览器的js代码
Launcher启动浏览器,将core嵌入到浏览器,并把浏览器代理设置为selenium Server的Http Proxy
开发过Web应用的人都知道,Javascript可以获取并调用页面的任何元素,自如的进行操作。由此才实现了Selenium的目的:自动化Web操作
这种Javascript注入技术的缺点是速度不理想,而且稳定性大大依赖于Selenium内核对API翻译成的Javascript质量高低
selenium RC 在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript 翻译器来翻译和执行selenese命令(selenese 是selenium命令集合)
同源策略XSS/HTTP(S)
弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载)
Selenium2.0进行了架构的调整和升级:
Selenium2.0 = Selenium1.0 + WebDriver(Selenium2.0合并了这两个项目)
WebDriver利用浏览器原生的API,封装成一套更加面向对象的SeleniumWebDriverAPI,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)
由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了SeleniumWebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等
selenium1.0 架构
从上图可以看出,selenium1.0包括:selenium IDE、selenium Grid、selenium RC三部分
其中:
selenium IDE:firefox的一个插件,可以录制和回放脚本
selenium Grid:用于实现分布式测试。使用Grid,可以同时在多台机器上和异构环境中并行运行多个测试事例
selenium RC:selenium核心部分,可以实现利用selenium的代理服务器来实现访问浏览器实现自动化测试
selenium RC可分为:Client和Selenium Server
1. client:实现自动化脚本
2. Selenium Server:负责控制浏览器行为
Selenium Server分为3部分
Launcher:启动浏览器
Http Proxy:selenium Server的Http代理
Core:嵌入到浏览器的js代码
Launcher启动浏览器,将core嵌入到浏览器,并把浏览器代理设置为selenium Server的Http Proxy
Selenium1.0技术分析
Selenium 1.0使用的是Javascript注入技术与浏览器打交道,需要SeleniumRC启动一个Server,将操作Web元素的API调用转化为一段段Javascript,在Selenium内核启动浏览器之后注入这段Javascript开发过Web应用的人都知道,Javascript可以获取并调用页面的任何元素,自如的进行操作。由此才实现了Selenium的目的:自动化Web操作
这种Javascript注入技术的缺点是速度不理想,而且稳定性大大依赖于Selenium内核对API翻译成的Javascript质量高低
selenium RC 在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript 翻译器来翻译和执行selenese命令(selenese 是selenium命令集合)
Selenium1.0不能处理的事件
本机键盘和鼠标事件同源策略XSS/HTTP(S)
弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载)
selenium2.0 架构
Selenium 2.0 则是把selenium 1.0中selenium RC替换为了WebDriverSelenium2.0进行了架构的调整和升级:
Selenium2.0 = Selenium1.0 + WebDriver(Selenium2.0合并了这两个项目)
WebDriver
由Simon Stewart 提出的,它是一个轻便简洁的自动化测试框架。WebDriver利用浏览器原生的API,封装成一套更加面向对象的SeleniumWebDriverAPI,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)
由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了SeleniumWebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等
相关文章推荐
- 第9周项目1:深复制体验(3)
- powerdesigner转excel的VB脚本
- 指针输出ask 码差值
- 编程小练习
- JAVA日志系统
- 第九周项目2——我的数组类
- 第8周项目2 用对象数组操作长方柱类
- 团队项目个人工作总结(4月28日)
- ios goto语法。
- 为什么日本德国没有一流互联网企业?
- 如何将文件夹建在Win10任务栏
- eclipse经常弹出Subversion Native Library Not Available,什么是JavaHL,svnkit完美解决
- JS点击按钮弹出窗口
- hao916,hao123,2345.com浏览器劫持-分析与清除
- <input>checkbox
- 编程小练习
- 例会新名词
- 例会新名词
- 软件定义存储是伪命题中的战斗机!
- 第九周项目一深复制体验(2)