- Selenium 教程
- Selenium - 首页
- Selenium - 概述
- Selenium - 组件
- Selenium - 自动化测试
- Selenium - 环境搭建
- Selenium - 远程控制
- Selenium IDE 教程
- Selenium - IDE 简介
- Selenium - 功能特性
- Selenium - 限制
- Selenium - 安装
- Selenium - 创建测试用例
- Selenium - 创建脚本
- Selenium - 控制流
- Selenium - 存储变量
- Selenium - 警报和弹出窗口
- Selenium - Selenese 命令
- Selenium - Actions 命令
- Selenium - Accessors 命令
- Selenium - Assertions 命令
- Selenium - Assert/Verify 方法
- Selenium - 定位策略
- Selenium - 脚本调试
- Selenium - 验证点
- Selenium - 模式匹配
- Selenium - JSON 数据文件
- Selenium - 浏览器执行
- Selenium - 用户扩展
- Selenium - 代码导出
- Selenium - 代码生成
- Selenium - JavaScript 函数
- Selenium - 插件
- Selenium WebDriver 教程
- Selenium - 简介
- Selenium WebDriver vs RC
- Selenium - 安装
- Selenium - 第一个测试脚本
- Selenium - 驱动程序会话
- Selenium - 浏览器选项
- Selenium - Chrome 选项
- Selenium - Edge 选项
- Selenium - Firefox 选项
- Selenium - Safari 选项
- Selenium - 双击
- Selenium - 右键单击
- Python 中的 HTML 报告
- 处理编辑框
- Selenium - 单个元素
- Selenium - 多个元素
- Selenium Web 元素
- Selenium - 文件上传
- Selenium - 定位器策略
- Selenium - 相对定位器
- Selenium - 查找器
- Selenium - 查找所有链接
- Selenium - 用户交互
- Selenium - WebElement 命令
- Selenium - 浏览器交互
- Selenium - 浏览器命令
- Selenium - 浏览器导航
- Selenium - 警报和弹出窗口
- Selenium - 处理表单
- Selenium - 窗口和标签页
- Selenium - 处理链接
- Selenium - 输入框
- Selenium - 单选按钮
- Selenium - 复选框
- Selenium - 下拉框
- Selenium - 处理 IFrame
- Selenium - 处理 Cookie
- Selenium - 日期时间选择器
- Selenium - 动态 Web 表格
- Selenium - Actions 类
- Selenium - Action 类
- Selenium - 键盘事件
- Selenium - 键向上/向下
- Selenium - 复制和粘贴
- Selenium - 处理特殊键
- Selenium - 鼠标事件
- Selenium - 拖放
- Selenium - 笔事件
- Selenium - 滚动操作
- Selenium - 等待策略
- Selenium - 显式/隐式等待
- Selenium - 支持特性
- Selenium - 多选
- Selenium - 等待支持
- Selenium - 选择支持
- Selenium - 颜色支持
- Selenium - ThreadGuard
- Selenium - 错误和日志记录
- Selenium - 异常处理
- Selenium - 其他
- Selenium - 处理 Ajax 调用
- Selenium - JSON 数据文件
- Selenium - CSV 数据文件
- Selenium - Excel 数据文件
- Selenium - 跨浏览器测试
- Selenium - 多浏览器测试
- Selenium - 多窗口测试
- Selenium - JavaScript 执行器
- Selenium - 无头执行
- Selenium - 捕获屏幕截图
- Selenium - 捕获视频
- Selenium - 页面对象模型
- Selenium - 页面工厂
- Selenium - 记录和回放
- Selenium - 框架
- Selenium - 浏览上下文
- Selenium - DevTools
- Selenium Grid 教程
- Selenium - 概述
- Selenium - 架构
- Selenium - 组件
- Selenium - 配置
- Selenium - 创建测试脚本
- Selenium - 测试执行
- Selenium - 端点
- Selenium - 自定义节点
- Selenium 报告工具
- Selenium - 报告工具
- Selenium - TestNG
- Selenium - JUnit
- Selenium - Allure
- Selenium & 其他技术
- Selenium - Java 教程
- Selenium - Python 教程
- Selenium - C# 教程
- Selenium - Javascript 教程
- Selenium - Kotlin 教程
- Selenium - Ruby 教程
- Selenium - Maven & Jenkins
- Selenium - 数据库测试
- Selenium - LogExpert 日志记录
- Selenium - Log4j 日志记录
- Selenium - Robot Framework
- Selenium - AutoIT
- Selenium - Flash 测试
- Selenium - Apache Ant
- Selenium - Github 教程
- Selenium - SoapUI
- Selenium - Cucumber
- Selenium - IntelliJ
- Selenium - XPath
- Selenium 其他概念
- Selenium - IE 驱动程序
- Selenium - 自动化框架
- Selenium - 关键字驱动框架
- Selenium - 数据驱动框架
- Selenium - 混合驱动框架
- Selenium - SSL 证书错误
- Selenium - 替代方案
- Selenium 有用资源
- Selenium - 问答
- Selenium - 快速指南
- Selenium - 有用资源
- Selenium - 自动化实践
- Selenium - 讨论
Selenium Grid - 端点
Selenium Grid 4 最新版本是在不依赖旧版本 Selenium Grid 代码库的情况下开发的。这个最新的 Selenium Grid 4 版本具有一些高级功能,例如 Grid 端点。
最新版本的 Selenium Grid 允许以三种不同的 Selenium Grid 模式触发测试执行。它们被称为独立模式、中心和节点模式以及分布式模式。
获取 Grid 状态
Grid 状态用于提供有关 Selenium Grid 当前状态的详细信息。详细信息包括有关所有已注册节点的信息。对于每个单独的节点,Grid 状态会告知节点是否可用,以及在其上运行的会话以及槽位。
curl Get https://127.0.0.1:4444/status'
当 Selenium Grid 以独立模式运行时,Grid URL 指向独立服务器地址。在中心节点模式下,Grid URL 指向中心服务器地址;在分布式模式下,Grid URL 指向路由器服务器地址。
在上例中,https://127.0.0.1:4444/status 是上述所有模式默认使用的 URL。
如果只有一个节点,则节点 URL 指向https://127.0.0.1:5555。
节点状态用于衡量节点的状况。分发器以一定间隔发送节点状态消息,并将相同的信息发送到 Grid 模型。这包括有关可用性、会话和槽位的详细信息。
cURL --request GET 'https://127.0.0.1:5555/status'
从 Selenium Grid 中移除节点
curl 命令用于从 Selenium Grid 中移除节点。从 Grid 中移除节点不会导致在节点中运行的任何当前会话终止。会话将继续执行,除非它被专门终止。分发器不知道节点,因此任何类似的新会话请求都不会转发到该特定节点。
当 Selenium Grid 以独立模式运行时,分发器 URL 指向独立服务器地址。在中心节点模式下,分发器 URL 指向中心服务器地址。
cURL --request DELETE 'https://127.0.0.1:4444/se/grid/distributor/node/<node-id>' --header 'X-REGISTRATION-SECRET: <secret> '
在完全分布式模式下,URL 指向分发器服务器地址。
cURL --request DELETE 'https://127.0.0.1:5553/se/grid/distributor/node/<node-id>' --header 'X-REGISTRATION-SECRET: <secret>'
如果未完成注册密钥的配置,则必须使用以下命令:
cURL --request DELETE 'http://<Distributor-URL>/se/grid/distributor/node/<node-id>' --header 'X-REGISTRATION-SECRET;'
在 Selenium Grid 中清空节点
节点清空命令用于以正确的方式执行节点关闭。清空节点表示在所有活动会话完成后结束节点。之后,不再接受其他新的会话请求。
当 Selenium Grid 以独立模式运行时,分发器 URL 指向独立服务器地址。在中心节点模式下,分发器 URL 指向中心服务器地址。
cURL --request POST 'https://127.0.0.1:4444/se/grid/distributor/node/<node-id>/drain' --header 'X-REGISTRATION-SECRET: <secret> '
在完全分布式模式下,URL 指向分发器服务器地址。
cURL --request POST 'https://127.0.0.1:5553/se/grid/distributor/node/<node-id>/drain' --header 'X-REGISTRATION-SECRET: <secret>'
如果未完成注册密钥的配置,则必须使用以下命令:
cURL --request POST 'http://<Distributor-URL>/se/grid/distributor/node/<node-id>/drain' --header 'X-REGISTRATION-SECRET;'
为什么在 Selenium Grid 中使用清空命令
分发器使用节点 ID 将清空命令发送到正确的节点。为了通过直接路由清空节点,使用以下命令:
cURL --request POST 'https://127.0.0.1:5555/se/grid/node/drain' --header 'X-REGISTRATION-SECRET: <secret>'
如果未完成注册密钥的配置,则必须使用以下命令:
cURL --request POST 'http://<node-URL>/se/grid/node/drain' --header 'X-REGISTRATION-SECRET;'
上述命令使用的端点是正确的,并且产生相同的结果。清空会在终止节点之前完成活动会话。
检查 Selenium Grid 中的会话所有者
要检查哪个会话是哪个节点的一部分,可以使用以下 curl 命令:
cURL --request GET 'https://127.0.0.1:5555/se/grid/node/owner/<session-id>' --header 'X-REGISTRATION-SECRET: <secret>'
如果未完成注册密钥的配置,则必须使用以下命令:
cURL --request GET 'http://<node-URL>/se/grid/node/owner/<session-id>' --header 'X-REGISTRATION-SECRET;'
如果特定会话指向一个节点,则上述两个命令都将返回 true 值,否则将返回 false。
在 Selenium Grid 中删除会话
当会话被删除时,webdriver 会话结束。此时,驱动程序将被退出,并与活动会话的映射分离。如果使用已删除的会话 ID 处理或重用任何进一步的请求,驱动程序对象将给出错误。删除会话的 curl 命令是:
cURL --request DELETE 'https://127.0.0.1:5555/se/grid/node/session/<session-id>' --header 'X-REGISTRATION-SECRET: <secret>'
如果未完成注册密钥的配置,则必须使用以下命令:
cURL --request DELETE 'http://<node-URL>/se/grid/node/session/<session-id>' --header 'X-REGISTRATION-SECRET;'
清除 Selenium Grid 中的新会话队列
新会话队列存储新的会话请求。要清除队列,请使用以下 curl 命令。一旦队列被清除,队列中的所有其他请求将不再被接受,并且服务器会向其客户端返回错误响应。
当 Selenium Grid 以独立模式运行时,队列 URL 指向独立服务器地址。在中心节点模式下,队列 URL 指向中心服务器地址。
cURL --request DELETE 'https://127.0.0.1:4444/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: <secret>'
在正确的分布式模式下,队列 URL 指向新会话队列服务器地址。
cURL --request DELETE \'https://127.0.0.1:5559/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: <secret>'
如果未完成注册密钥的配置,则必须使用以下命令:
cURL --request DELETE 'http://<URL>/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET;'
获取 Selenium Grid 中的新会话请求
新会话请求存储新的会话请求。要获取队列中当前的请求,请使用以下 curl 命令。此命令将产生队列中请求的总数及其有效负载。
当 Selenium Grid 以独立模式运行时,队列 URL 指向独立服务器地址。在中心节点模式下,队列 URL 指向中心服务器地址。
cURL --request GET 'https://127.0.0.1:4444/se/grid/newsessionqueue/queue'
在正确的分布式模式下,队列 URL 指向新会话队列服务器地址。
cURL --request GET 'https://127.0.0.1:5559/se/grid/newsessionqueue/queue'
本教程到此结束,我们全面介绍了 Selenium Grid - 端点。我们首先介绍了如何获取 Grid 状态、如何移除节点、什么是清空节点、什么是清空命令、如何检查和删除会话所有者、如何清除新会话队列以及如何在 Selenium Grid 中获取新的会话请求。
本节内容将为您提供深入的Selenium Grid端点知识。建议您持续练习所学内容,并探索与Selenium相关的其他知识,以加深理解并拓宽视野。