selenium/sessions本镜像提供Selenium Grid SessionMap组件,专为Selenium分布式Grid架构设计,需与其他Grid组件协同工作。SessionMap作为分布式Grid的核心组件之一,负责存储和管理测试会话的元数据信息,支持远程执行WebDriver测试。
SessionMap组件需与Selenium Grid其他组件(事件总线、分发器、会话队列、节点等)协同部署。以下是完整的分布式Grid Docker Compose配置示例:
yaml# 执行命令: docker-compose -f docker-compose-v3-full-grid.yml up # 添加 `-d` 标志可后台运行 # 停止命令: Ctrl+C 后执行 docker-compose -f docker-compose-v3-full-grid.yml down version: "3" services: # 事件总线组件 selenium-event-bus: image: selenium/event-bus:latest container_name: selenium-event-bus ports: - "4442:4442" # 发布端口 - "4443:4443" # 订阅端口 - "5557:5557" # 调试端口 # SessionMap组件 (会话映射服务) selenium-sessions: image: selenium/sessions:latest container_name: selenium-sessions ports: - "5556:5556" # SessionMap服务端口 depends_on: - selenium-event-bus # 依赖事件总线 environment: - SE_EVENT_BUS_HOST=selenium-event-bus # 事件总线主机名 - SE_EVENT_BUS_PUBLISH_PORT=4442 # 事件总线发布端口 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 # 事件总线订阅端口 # 其他必要组件 selenium-session-queue: image: selenium/session-queue:latest container_name: selenium-session-queue ports: - "5559:5559" selenium-distributor: image: selenium/distributor:latest container_name: selenium-distributor ports: - "5553:5553" depends_on: - selenium-event-bus - selenium-sessions - selenium-session-queue environment: - SE_EVENT_BUS_HOST=selenium-event-bus - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - SE_SESSIONS_MAP_HOST=selenium-sessions # 指向SessionMap服务 - SE_SESSIONS_MAP_PORT=5556 # SessionMap服务端口 - SE_SESSION_QUEUE_HOST=selenium-session-queue - SE_SESSION_QUEUE_PORT=5559 selenium-router: image: selenium/router:latest container_name: selenium-router ports: - "4444:4444" # Grid入口端口 depends_on: - selenium-distributor - selenium-sessions - selenium-session-queue environment: - SE_DISTRIBUTOR_HOST=selenium-distributor - SE_DISTRIBUTOR_PORT=5553 - SE_SESSIONS_MAP_HOST=selenium-sessions - SE_SESSIONS_MAP_PORT=5556 - SE_SESSION_QUEUE_HOST=selenium-session-queue - SE_SESSION_QUEUE_PORT=5559 # 浏览器节点 (示例) chrome: image: selenium/node-chrome:latest shm_size: 2gb depends_on: - selenium-event-bus environment: - SE_EVENT_BUS_HOST=selenium-event-bus - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
启动后,WebDriver测试应指向 http://localhost:4444 进行会话请求。
SessionMap组件通过以下环境变量进行配置(在selenium-sessions服务中设置):
| 环境变量 | 描述 | 默认值 |
|---|---|---|
SE_EVENT_BUS_HOST | 事件总线组件的主机名或IP地址 | 无 (必填) |
SE_EVENT_BUS_PUBLISH_PORT | 事件总线的发布端口 | 4442 |
SE_EVENT_BUS_SUBSCRIBE_PORT | 事件总线的订阅端口 | 4443 |
为确保环境稳定性,建议使用具体版本标签而非latest。标签结构如下:
selenium/sessions-<Major>.<Minor>.<Patch>-<YYYYMMDD>
selenium/sessions:4 # 主版本4的最新版本 selenium/sessions:4.9 # 主版本4.9的最新版本 selenium/sessions:4.9.0 # 具体版本4.9.0 selenium/sessions:4.9.0-20230426 # 包含发布日期的精确版本
更多标签信息请参考Selenium Docker镜像标签约定。
本项目基于Apache License 2.0开源协议,源代码由社区志愿者贡献并免费提供。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务