Selenium 简明教程
Selenium Grid - Overview
Selenium Grid 用于通过在多台计算机上执行执行来并行模式执行测试脚本。因此,Selenium Grid 有助于通过将命令从客户端发送至远程浏览器实例来启动测试脚本的测试执行。
Selenium Grid 是一种将测试分布在多台物理机或虚拟机上以使我们可以并行(同时)执行脚本的工具。它极大地加速了测试过程,并且可在多个浏览器和平台上运行测试,并向我们提供有关产品的快速且准确的反馈。
Selenium Grid 允许我们执行 * WebDriver* 或 * Selenium Remote Control* 的多个实例允许并行执行使用相同代码库的测试,因此代码不必存在于它们执行的系统上。selenium-server-standalone 包括 Hub、WebDriver 和 Selenium RC 以在网格中执行脚本。
Selenium Grid 有一个 Hub 和一个节点。Selenium 已发布了多个版本的 Selenium Grid,最新版本是 4。Selenium Grid 4 是一种新实现,并且不使用较旧 Selenium Grid 版本的源代码。
What is a Selenium Grid?
Selenium Grid 主要用于并行测试。它遵循 hub(充当中心部分,其余部分被视为节点)和节点架构。Selenium Grid 使我们能够同时在多台计算机上执行各种测试。Selenium Grid 主要用于测试执行,而不是设计。
Selenium Grid 充当代理服务器,帮助触发多台计算机上的并行执行。这是通过向远程 Web 浏览器对象提供方向来完成的。在它们中间,其中之一充当 hub。
接下来,hub 将测试指令定向到已注册的 Selenium Grid 节点。这些测试指令主要采用 JSON 格式。hub 在创建不同计算机上的并发执行、从中心控制各个浏览器方面发挥着重要作用。
Selenium Grid 允许分散执行测试用例。在设计测试用例时,其执行在开发它的同一台计算机上进行。但是,一旦测试套件中有大量测试用例,就不会再进行本地执行以节省时间。相反,利用多台服务器,本地计算机对各种服务器或计算机进行隔离并运行测试。
Need of Selenium Grid
Selenium Grid 赋予了在多个浏览器及其各个版本、同一浏览器的多个实例和平台上执行测试脚本的权利,从而主要减少了测试用例的执行时间。Selenium Grid 允许通过在多台计算机上触发执行来更好地利用资源。
Selenium Grid 提供了创建跨浏览器测试的选项,类似于在各种浏览器和平台上同时进行一项测试,从而帮助捕获结果并对其进行研究。测试结果获取速度更快,从而有助于向正在测试的产品提供更快的反馈。
Components of Selenium Grid
Selenium Grid 的组件如下所示 −
Advantages of Selenium Grid
Selenium 网格的优点如下:
-
Selenium 网格广泛用于跨浏览器测试,并在不同的浏览器、实例、设备和平台上执行测试。因此,Selenium 网格提供了查看待测应用程序如何响应各种浏览器、平台和设备组合的机会。
-
由于可以使用并行线程触发测试,因此整个测试套件可以完全执行,并且测试周期较短。
-
由于测试周期较短,Selenium 网格可以为项目干系人提供更快的结果,并总结应用程序的开发情况。
-
Selenium 网格测试用例灵活、易于维护、可扩展,并在短时间内提供更好的测试覆盖率。
Example
让我们举一个 Selenium 网格设置的示例,其中有两个节点。第一个节点具有最新版本的 Chrome,而另一个节点具有 Firefox(但不是最新版本)。随着测试的进行,Selenium 网格会将测试分配给针对配置的浏览器执行。
配置应该是这样的,即使测试套件有大量的测试,也可以加速测试执行。Selenium 网格长期以来一直是 Selenium 的原生部分。
还必须指出,Selenium 网格允许跨平台设置配置。这意味着,如果中心在 Mac 的 Safari 浏览器上执行测试,那么一个节点可以在 Windows 中的 Chrome 浏览器上执行测试,另一个节点可以在 Ubuntu 中的 Firefox 浏览器上运行测试。