Selenium,WebDriver,Selendroid,Appium的关系
2018-03-09 11:29
666 查看
自动化测试中框架较多,其中Selenium,WebDriver,Selendroid,Appium的关联性相对啰嗦。因此,从网上搜罗了些资料,稍做总结。不想长篇大论,也不想说理论代码,只为理清关系。
一切都得从Selenium说起。
2004年,ThoughtWorks的Jason Huggins发起了Selenium项目。Selenium共经历三个版本,2004年的1.0版,2006年的2.0版,2016年的3.0版。
1.0版的Selenium包括三个部分,Selenium IDE(插件,用于录屏,并转化代码),Selenium Grid(扩展工具集)和Selenium RC(Remote Controller)。其中Selenium RC是主要部分。
Selenium基于javascript,为了规避javascript在不同浏览器上可能引发的安全性问题,Selenium project与WebDriver project的合并,升级为Selenium2.0,其中WebDriver与Selenium RC的角色类似,但为了兼容性,2.0版本中并未将Selenium RC移除。
关于WebDriver Project的历史,网上说的不多。它与Selenium的不同之处在于,WebDriver采用适配器的方式,与不同浏览器进行对接。因此,在使用时,需要下载不同版本的Driver。而与Selenium的合并,也解决了其自身的问题。例如,可以支持更多的开发语言,接入更多的浏览器。
Selenium与WebDriver合并后,Selenium2.0就等价为WebDriver了,对于Selenium2.0的学习,其实是对WebDriver API的学习。
3.0版本直到2016年才发布,该版本彻底移出了Selenium RC,对开发环境也有了限制(例如只支持jvav8以上版本,对不同的浏览器也有最低版本要求)。相对而言,2.0版的通用性更高。
从测试的角度来说,Selenium从头至尾都是对web的测试框架,而对Android的支持只是其分支,而该分支即为Selendroid。
Selendroid可以视为web版的Robotium,它基于Instrumentation,需要在相同的进程内,有相同的签名的情况下进行测试。
Appium则是另外一段故事。
2011年,Zoosk的Dan Cuellar为解决IOS自动化测试的某些问题,开始了一个称为IOSAuto的项目,该项目基于UIAutomation架构。在2012年的Selenium Conference上进行了首次展示。机缘巧合,Jason Huggins此时正在负责IOS测试支持,IOSAuto为其提供了一些思路。针对IOSAuto,Jason Huggins给出了一些建议,例如开源,Python版本等。之后IOSAuto更名为Appium,寓意Selenium for Apps。此外,起初的Appium并不支持4.2以下的android设备,之后集成了Selendroid,来解决这一短板。
2014年,Appium发布了1.0版本。至今,最新版本为1.7.2。相对Selenium而言,该框架并不仅限于web测试,同样支持android的native,hybrid。
以上总结,若有错误理解,也希望童鞋拍砖,指出问题。
参考文章
(1)Selenium发展史
(2)Selenium VS WebDriver
(3)Selendroid官方网站
(4)初识Selendroid
(5)Appium历史
(6)Appium中国行总结
一切都得从Selenium说起。
2004年,ThoughtWorks的Jason Huggins发起了Selenium项目。Selenium共经历三个版本,2004年的1.0版,2006年的2.0版,2016年的3.0版。
1.0版的Selenium包括三个部分,Selenium IDE(插件,用于录屏,并转化代码),Selenium Grid(扩展工具集)和Selenium RC(Remote Controller)。其中Selenium RC是主要部分。
Selenium基于javascript,为了规避javascript在不同浏览器上可能引发的安全性问题,Selenium project与WebDriver project的合并,升级为Selenium2.0,其中WebDriver与Selenium RC的角色类似,但为了兼容性,2.0版本中并未将Selenium RC移除。
关于WebDriver Project的历史,网上说的不多。它与Selenium的不同之处在于,WebDriver采用适配器的方式,与不同浏览器进行对接。因此,在使用时,需要下载不同版本的Driver。而与Selenium的合并,也解决了其自身的问题。例如,可以支持更多的开发语言,接入更多的浏览器。
Selenium与WebDriver合并后,Selenium2.0就等价为WebDriver了,对于Selenium2.0的学习,其实是对WebDriver API的学习。
3.0版本直到2016年才发布,该版本彻底移出了Selenium RC,对开发环境也有了限制(例如只支持jvav8以上版本,对不同的浏览器也有最低版本要求)。相对而言,2.0版的通用性更高。
从测试的角度来说,Selenium从头至尾都是对web的测试框架,而对Android的支持只是其分支,而该分支即为Selendroid。
Selendroid可以视为web版的Robotium,它基于Instrumentation,需要在相同的进程内,有相同的签名的情况下进行测试。
Appium则是另外一段故事。
2011年,Zoosk的Dan Cuellar为解决IOS自动化测试的某些问题,开始了一个称为IOSAuto的项目,该项目基于UIAutomation架构。在2012年的Selenium Conference上进行了首次展示。机缘巧合,Jason Huggins此时正在负责IOS测试支持,IOSAuto为其提供了一些思路。针对IOSAuto,Jason Huggins给出了一些建议,例如开源,Python版本等。之后IOSAuto更名为Appium,寓意Selenium for Apps。此外,起初的Appium并不支持4.2以下的android设备,之后集成了Selendroid,来解决这一短板。
2014年,Appium发布了1.0版本。至今,最新版本为1.7.2。相对Selenium而言,该框架并不仅限于web测试,同样支持android的native,hybrid。
以上总结,若有错误理解,也希望童鞋拍砖,指出问题。
参考文章
(1)Selenium发展史
(2)Selenium VS WebDriver
(3)Selendroid官方网站
(4)初识Selendroid
(5)Appium历史
(6)Appium中国行总结
相关文章推荐
- selenium webdriver(Appium)如何等待页面元素加载完成
- selenium webdriver(Appium)如何等待页面元素加载完成
- appium+java+cucumber+selenium-webdriver android
- Selenium2的发布(RC与Webdriver的关系)
- 解决appium org.openqa.selenium.WebDriverException: An unknown server-side error occurred while process
- appium创建session失败:selenium.common.exceptions.WebDriverException: Message: A new session could not be
- selenium webdriver或Appium+testng+ant+jenkins的集成方法
- web自动化_浏览器驱动chromedriver安装方法(适用RF框架/Selenium/Appium)
- selenium webdriver(Appium)如何等待页面元素加载完成
- selenium webdriver 学习总结-元素定位
- Selenium-WebDriver基本使用和API--1
- Selenium Webdriver元素定位的八种常用方式
- selenium webdriver (python)
- Selenium Webdriver元素定位的八种常用方式
- selenium webdriver学习(十)-怎么把一个元素拖放到另一个元素里面
- [Selenium] WebDriver 操作文件系统
- selenium webdriver处理浏览器Cookie
- Selenium WebDriver的使用(二)
- Selenium 高阶应用之WebDriverWait 和 expected_conditions
- Java Selenium封装--RemoteWebDriver