Selenium的特点和发展历程
1 特点
Web自动化测试主流工具:
工具名称 | 说明 |
---|---|
Selenium | 开源的web自动化测试工具,主要做功能测试 |
QTP | 商业化的功能测试工具,只支持web,桌面自动化测试 |
Robot framework | 基于Python可扩展地关键字驱动的测试自动化框架(2014年已停止更新) |
selenium的特点:
- 开源,可以根据需要自定义某些功能
- 跨平台,支持Windows、Mac、Linux
- 支持多种语言,Python、Java、C#、JavaScript、Ruby、PHP等
- 支持多种浏览器,Firefox、Chrome、IE、Edge、Opera、Safari等
- 功能强大,能够实现类似商业工具的大部分功能
- 成熟稳定,目前已经被google、 百度、 腾讯等公司广泛使用
2 发展历程
2.2 selenium1.0
selenium 1.0 = selenium IDE + selenium Grid + selenium RC
selenium RC = Client Libraries + Selenium Server
Selenium Server = Launcher + Http Proxy + Core
(1) selenium IDE: 一个Firefox插件,可以录制用户的基本操作,生成测试用例;测试用例在Firefox浏览器里回放,并且可以转化为其他语言的自动化脚本(录制自动化代码工具)
(2) selenium Gird: 允许selenium RC针对规模庞大的测试用例集或者需要在不同环境运行的测试用例集进行扩展(分布式工具,同时启动多个浏览器)
(3) selenium RC: 用来模拟一个浏览器,支持多种平台和多种浏览器,可以使用多种语言编写测试用例(通过JS模拟浏览器,实现自动化方式)
Selenium RC分为Client Libraries和Selenium Server。
Client Libraries库主要用于编写测试脚本,用来控制Selenium Server的库。Selenium Server分为3部分:
-
Launcher:启动浏览器
-
Http Proxy:selenium Server的Http代理
-
Core:嵌入到浏览器的js代码。
缺点:
- 不支持键盘和鼠标事件
- 不支持同源策略XSS/HTTP(S)
- 不支持弹出框,对话框(基本身份证,电子签名的证书和文件的上传下载)
2.2 selenium2.0
selenium2.0 = selenium1.0 + WebDriver
- 调用WebDriver Api 来模拟用户操作
- WebDriver直接交互使用,速度更快
- 支持更多编程语言
2.3 selenium3.0
Selenium 3.0=selenium 1.0(除去selenium RC)+WebDriver(驱动重写)
- 取消了对selenium RC的支持
- 支持IE 9.0以上版本
- 通过Mozilla官方的geckdriver来支持Firefox
- 通过微软官方的webdriver server支持Edge浏览器
- 支持Mac OS官方的Safaridriver
- 只支持java8以上版本
3 学习地址
selenium中文文档:https://selenium-python-zh.readthedocs.io/en/latest/
selenium官方文档:https://www.selenium.dev/selenium-ide/docs/en/introduction/getting-started
selenium for python 官方文档: https://selenium-python.readthedocs.io/