30天进阶Selenium3自动化测试(3):Selenium的认知
Selenium工具集
如图所示, Selenium工具集的呈现。
一、Selenium IDE
Selenium IDE (集成开发环境) 是一个创建测试脚本的工具,如图所示。它是一个FireFox 插件,实现浏览器的录制与回放功能,提供创建自动化测试的建议接口。Selenium IDE 有一个记录功能,能记录人工的操作,并且能选择多种语言把它们导出到一个可重用的脚本中用于后续执行。如果没有编程经验,可以通过Selenium IDE来熟悉Selenium的命令。实际自动化测试脚本开发过程中Selenium IDE使用并不多。
二、Selenium RC
Selenium RC 是Selenium 家族的核心工具,Selenium RC 支持多种不同的语言(Python 、Java、Ruby、PHP)编写自动化测试脚本,通过Selenium RC 服务器作为代理服务器去访问被测应用从而达到测试的目的。
Selenium RC 分为Client Libraries 和Selenium Server。
- Client Libraries 库主要用于编写测试脚本,用来控制Selenium Server 的库;
- Selenium Server 负责控制浏览器行为, Selenium Server 主要包括3 部分:Launcher、Http Proxy、Core。其中,Selenium Core是被Selenium Server嵌入到浏览器页面中。SeleniumCore就是众多JavaScript函数的集合,即通过这些JavaScript函数,我们才可以实现用程序对浏览器进行操作。Launcher用于启动浏览器,把Selenium Core加载到浏览器页面当中,并把浏览器的代理设置为SeleniumServer的HttpProxy。
Selenium引入了Remote Control Server 来代理 Server,JavaScript 脚本注入和与 Server 通讯都通过这个代理Server 来进行。引入这Remote Control Server 是因为“同源策略”的限制,通过代理服务器来“欺骗”远程Server,达到使其以为是从同一个地方 load 代码以正确返回请求数据的效果。如图所示,Selenium RC的流程为:
(1) 测试用例通过Http请求建立与 Selenium-RC server 的连接;
(2) Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy;
(3) 执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码;
(4) Selenium Core执行接受到的指令并操作;
(5) 当浏览器收到新的请求时,发送http请求;
(6) Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面;
(7) Selenium Server中的Http Proxy把接受到的页面返回给浏览器。
三、Selenium Grid
Selenium Grid 使得Selenium RC 解决方案能提升针对大型的测试套件或者哪些需要运行在多环境的测试套件的处理能力。Selenium Grid 可以并行测试用例,也就是说,不同的测试用例可以同时跑在不同的远程机器上。这样做有两个优势,首先,如果有一个大型的测试套件,或者一个跑的很慢的测试套件,可以使用Selenium Grid 将该测试套件划分成几份,同时在几个不同的机器上运行,这样能够显著的提升性能。同时,如果必须在多环境中运行测试套件,可以获得多个远程机器的支持,它们将同时运行测试套件。在不同的情况下,Selenium Grid 都能通过并行处理显著的缩短测试套件的处理时间。
四、Selenium WebDriver
当人们谈论Selenium时,一般所指的就是Selenium WebDriver。WebDriver 是Selenium 2 主推的工具,事实上WebDriver是Selenium RC的替代品,因为Selenium需要保留向下兼容性的原因,在Selenium 2 中, Selenium RC没有被彻底的抛弃,如果使用Selenium开发一个新的自动化测试项目,那么我们强烈推荐使用Selenium2 的WebDriver进行编码。而在Selenium 3 中,Selenium RC 被移除了。
1.1.2 Selenium3.0的新特性
2016年7月,Selenium3.0发布第一个beta版,当前的版本是3.141,Selenium3的版本特性有:
- 去掉了对Selenium RC的支持;
- 全面拥抱Java 8;
- 支持macOS (Sierra or later),支持官方的safaridriver;
- 通过ms官方的WebDriverserver支持Edge浏览器;
- 只支持ie 9.0版本以上;
- 通过Mozilla官方的geckodriver来支持FireFox;
- Selenium IDE支持Chrome插件;
- 支持微软的Edge浏览器。
学习资源分享
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
相关文章
- API的自动化测试
- 〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)
- 〖Python接口自动化测试实战篇①〗- 自动化测试基础扫盲及项目的生命周期详述
- 软件测试面试题含答案:WEB+网络|接口测试|性能测试|自动化测试
- 面试Python自动化测试岗,经典题目回顾!还不是offer手到擒来...“面试”,唉!我就是玩...
- 今年还在点点点的你!技术的迭代更新!你又如何进阶中高级自动化测试工程师?
- 【进阶教程】Appium自动化测试,太详细了!
- Airtest自动化测试篇——Airtest简介
- Airtest自动化测试——Airtest进阶和图像识别算法(下)
- 【进阶自动化测试第一步】2023自动化测试入门
- 【2023最新教程】从0到1搭建pytest接口自动化测试框架(建议收藏)
- 作为一个纯手工的功能测试来说,如何转入自动化测试行业?
- 字节5年经验之谈,迷茫的手工测试如何进阶自动化测试呢?
- 3年测试工程师不会做自动化测试,用Python+Selenium秀她一脸
- 进阶自动化测试的看过来,一文7个阶段5000字带你全面了解自动化测试
- 【进阶自动化测试第一步】接口测试基础
- 从功能测试进阶自动化测试,熬夜7天整理了这一份2000字超全学习指南【附学习路线图】
- 30天进阶Selenium3自动化测试(2):自动化测试的优势及应用场景
- 【每天学习3分钟系列】测试进阶必看:自动化测试入门基础知识
- 10分钟看完这篇文章,一文4个方面带你系统进阶自动化测试涨薪5k
- 非985,211的 自动化测试工程师如何通过社招进入 BAT 等一线大厂?
- 软件测试/Python 自动化测试训练营/从小白进阶到高手
- Selenium自动化测试——巡检脚本开发(下)