Selenium 4.x Grid 1/4
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium 4.x Grid 1/4相关的知识,希望对你有一定的参考价值。
参考技术A在[Selenium Grid 版本 3 之前,只有 Hub 和 Node(s)。尽管这在 Selenium 4 中仍受支持,但它现在支持另外两种类型的 Grid。
以下是在Selenium Grid 4 的完全分布式变体上作为跨浏览器测试的一部分执行的详细步骤列表:
** 第 1 步 **——第一步是启动会话映射,它主要负责将会话 ID 映射到运行会话的相应节点。
创建新会话时,会话 ID 和节点 URI(统一资源标识符)的组合存储在会话映射中。
第 2 步 – 下一步是开始 分发进程 。当 Selenium 客户端有请求创建 Sessions 请求时,Distributor 负责分配适当的节点。
第 3 步 – 路由器是通常暴露在网络上的路由器。 路由器在 http://localhost:4444 上监听新的 Session 请求。
客户端请求被发送到路由器,并根据请求类型选择适当的路径。创建新会话的传入请求被重定向到路由器进程。
所有其他类型的请求在使用 Session ID 从 Sessions 映射中查询节点 URI 后,根据请求发送到节点。
第 4 步 – 如果没有节点,网格将毫无用处。各个浏览器的 Selenium WebDrivers 放在 Grid 4 jar 文件所在的同一目录中。
–detect-drivers 选项用于自动识别系统中存在的 Selenium WebDrivers。
在分发服务器下创建节点时,会在会话映射中更新节点的详细信息以及节点 URI。在下面显示的屏幕截图中,节点 URI 是 5555。
第 5 步 – Selenium WebDriver 发起远程会话的请求被发送到路由器。
curl 命令 http://localhost:4444/status 用于检查调用的状态,以及检查会话是否建立。
一旦在节点下建立会话,会话 ID 就会在相应节点的会话映射中更新。如步骤 (3) 所述,这有助于 路由器进程 识别节点,以便其他“匹配”客户端请求可以直接发送到该节点。
第 6 步 – 会话创建调用由路由器转移到分发器,所有其他类型的请求直接从路由器发送到节点。
在早期版本的 Selenium Grid 中,这些过程发生在 Hub 内部,因此使用该版本的 Selenium Grid 的开发人员和测试人员并不完全了解内部结构。Selenium Grid 4 的更新架构使调试和故障排除过程更容易,这反过来又使 Selenium 测试自动化更加无缝。
如何使用Selenium-Grid
SeleniumGrid是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-app的功能测试。利用Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。
Selenium Grid基于Web-app测试工具Selenium,可以同时并行运行多个Selenium Remote
Control。比较好的一点事,使所有这些Selenium Remote Control显示为一个,这样在测试中就可以不必操作具体的计算机。
使用方法:
准备:
1. 下载安装ant
解压包到选择的任意目录,然后将解压路径/apache-ant-1.7.0/bin 添加的Path变量中。
最后验证安装:
$ ant -version
Apache Ant version 1.7.0 compiled on December 13 2006
2. 下载安装JDK 1.6
http://www.java.com/en/download/index.jsp
安装后添加java的bin目录到path变量,然后验证:
$java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
3. 下载Selenium Grid
http://selenium-grid.seleniumhq.org/download.html
其中,zip是Windows平台的,tar.bz2用于其他平台。下载后解压缩,然后验证:
$cd <你的grid目录>
$ant sanity-check
运行:
1. 运行Selenium Grid
$ ant launch-hub
通过浏览器访问Selenium Grid控制台验证Selenium Grid启动成功:
http://localhost:4444/console
2. 运行Selenium Remote Control
与Grid在同一台机器上,只要指定不同的端口号,就可以运行多个RC在同一台机器上:
$ant -Dport=5556 launch-remote-control
$ant -Dport=5557 launch-remote-control
$ant -Dport=5558 launch-remote-control
运行后,通过访问Grid控制台,验证RC注册成功: 参考技术A
"host": null,
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"prioritizer": null,
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"throwOnCapabilityNotPresent": true,
"nodePolling": 5000,
"cleanUpCycle": 5000,
"timeout": 300000,
"browserTimeout": 0,
"maxSession": 5
本回答被提问者和网友采纳
以上是关于Selenium 4.x Grid 1/4的主要内容,如果未能解决你的问题,请参考以下文章
Selenium Grid Docker-通过 Jenkins 实现自动化