Selenium的成分
Selenium是一个通过程序控制网络浏览器的强大工具。它适用于所有浏览器,适用于所有主要操作系统,其脚本是用各种语言编写的,例如Python、 Java、C# 等,我们将使用Python。 Selenium有四个主要组件Selenium IDE、 Selenium RC、 Selenium Web 驱动程序、 Selenium GRID。
Selenium的成分
Selenium已在该行业中使用了很长时间,并被全球各地的自动化测试人员使用。
让我们检查一下Selenium的四个主要组成部分——
- SeleniumIDE
- SeleniumRC
- Selenium网络驱动程序
- Selenium网格
SeleniumIDE
Selenium IDE(集成开发环境)是Selenium Suite 中的主要工具。它是用于Selenium测试的完整集成开发环境 (IDE)。它被实现为 Firefox 附加组件和 Chrome 扩展。它允许记录、编辑和调试功能测试。它以前被称为Selenium Recorder。 Selenium-IDE 最初由 Shinya Kasatani 创建,并于 2006 年捐赠给Selenium项目Selenium IDE 以前很少维护。 Selenium IDE 于 2018 年开始积极维护。
脚本可以自动记录和手动编辑,提供自动完成支持和快速移动命令的能力。脚本以 Selenese 记录, Selenium是一种特殊的测试脚本语言。 Selenese 提供了用于在浏览器中执行操作(单击链接,选择一个选项)以及从结果页面中检索数据的命令。
Selenium RC(远程控制)
Selenium Remote Control (RC) 是一个用Java编写的服务器,它通过 HTTP 接受浏览器的命令。 RC 使得使用任何编程语言为 Web 应用程序编写自动化测试成为可能,这允许将Selenium更好地集成到现有的单元测试框架中。为了使编写测试更容易, Selenium项目目前为PHP、 Python、Ruby、.NET、Perl 和Java提供客户端驱动程序。 Java驱动程序也可以与 JavaScript 一起使用(通过 Rhino 引擎)。需要一个selenium RC 服务器实例来启动 html 测试用例——这意味着每个并行运行的端口应该不同。但是,对于Java/ PHP测试用例,只需要一个Selenium RC 实例持续运行。
Selenium网络驱动程序
Selenium WebDriver 是Selenium RC 的继承者。 Selenium WebDriver 接受命令(以 Selenese 或通过客户端 API 发送)并将它们发送到浏览器。这是通过特定于浏览器的浏览器驱动程序实现的,该驱动程序向浏览器发送命令并检索结果。大多数浏览器驱动程序实际上会启动和访问浏览器应用程序(例如 Firefox、Google Chrome、Internet Explorer、Safari 或 Microsoft Edge);还有一个 HtmlUnit 浏览器驱动程序,它使用无头浏览器 HtmlUnit 模拟浏览器。
Selenium WebDriver 不需要特殊的服务器来执行测试。相反,WebDriver 直接启动浏览器实例并对其进行控制。但是, Selenium Grid 可以与 WebDriver 一起用于在远程系统上执行测试(见下文)。在可能的情况下,WebDriver 使用本机操作系统级别的功能而不是基于浏览器的 JavaScript 命令来驱动浏览器。这绕过了本机命令和 JavaScript 命令之间存在细微差别的问题,包括安全限制。
Selenium网格
Selenium Grid 是一个服务器,它允许测试使用在远程机器上运行的 Web 浏览器实例。使用Selenium Grid,一台服务器充当集线器。测试联系中心以获取对浏览器实例的访问权限。集线器有一个服务器列表,提供对浏览器实例(WebDriver 节点)的访问,并让测试使用这些实例。 Selenium Grid 允许在多台机器上并行运行测试,并集中管理不同的浏览器版本和浏览器配置(而不是在每个单独的测试中)。
在远程浏览器实例上运行测试的能力有助于将测试负载分散到多台机器上,并在不同平台或操作系统上运行的浏览器中运行测试。后者在并非所有用于测试的浏览器都可以在同一平台上运行的情况下特别有用。