Selenium是一个开源免费,用于WEB应用程序自动化测试的工具集,包含Selenium Webdriver、Selenium IDE、Selenium Grid三个组件。
Selenium直接驱动浏览器进行模拟用户的操作。它的特点:
https://www.selenium.dev/documentation/webdriver/
Selenium Webdriver 提供了很多操作浏览器的API,这些API通过浏览器的驱动程序访问浏览器。
WebDriver与浏览器驱动程序的链接方式有三种:
https://www.selenium.dev/documentation/overview/components/
第一种:WebDriver直接与浏览器驱动程序连接,WebDriver、浏览器驱动程序和浏览器运行在同一台机器上。

第二种,WebDriver通过Selenium Server或者Remote WebDriver进行远程通信。RemoteWebDriver与浏览器驱动程序、浏览器运行在同一个操作系统上。

第三种,可以使用Selenium Server或Selenium Grid进行分布式测试。

在真正的自动化测试实践中,通常会利用常用的测试框架,例如Pytest\TestNG对WebDriver进行封装。

https://www.selenium.dev/selenium-ide/
Selenium IDE 是一个浏览器插件,支持Chrome和FireFox浏览器,可以将手工操作浏览器的步骤录制成脚本,实现对操作步骤进行回放。
Selenium Grid可以实现在不同操作系统上,针对不同型号的浏览器(Edge、Chrome、Firefox、Safari)、不同版本浏览器执行自动化测试。以实现兼容性测试,减少测试执行时间的目的。
Grid通过一个中心节点来管理多个浏览器实例,轻松实现对多浏览器的并行测试、分布式测试。从本质上讲,Selenium Grid 是一种可以并发执行 GUI 测试用例的测试执行机的集群环境,采用的是 HUB 和 Node 模式。
Selenium Hub 用来管理各个 Selenium Node 的注册信息和状态信息,并且接收远程客户端代码的测试调用请求,并把请求命令转发给符合要求的 Selenium Node 执行。Node上部署了多种浏览器。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTPQbVx7-1657963205053)(pics/screenshot-20220324-142812.png)]](https://1000bd.com/contentImg/2022/07/25/152301382.png)