首页
/ Selenium Grid视频录制功能部署指南:基于docker-compose-v3-video-in-node.yml的实践

Selenium Grid视频录制功能部署指南:基于docker-compose-v3-video-in-node.yml的实践

2025-07-07 01:44:13作者:冯爽妲Honey

概述

在现代Web自动化测试中,视频录制功能对于测试过程的可视化和问题排查至关重要。本文将深入解析如何通过Docker Compose部署支持视频录制功能的Selenium Grid集群,重点解读docker-compose-v3-video-in-node.yml配置文件的各项技术细节。

核心组件架构

该配置文件定义了一个完整的Selenium Grid集群,包含以下关键组件:

  1. Selenium Hub:作为中央调度器,管理所有节点
  2. 浏览器节点:包括Chrome、Edge和Firefox三种浏览器节点
  3. 文件浏览器服务:用于查看和管理录制的测试视频

详细配置解析

1. Selenium Hub配置

selenium-hub:
  image: selenium/hub:4.34.0-20250707
  container_name: selenium-hub
  ports:
    - "4442:4442"
    - "4443:4443"
    - "4444:4444"
  • 使用特定版本(4.34.0-20250707)的hub镜像确保稳定性
  • 暴露三个端口:4444用于Grid通信,4442/4443用于内部管理

2. 浏览器节点配置

以Chrome节点为例:

chrome:
  deploy:
    mode: replicated
    replicas: 3
  image: selenium/node-chrome:4.34.0-20250707
  platform: linux/amd64
  shm_size: 2gb
  depends_on:
    - selenium-hub
  volumes:
    - /tmp/videos:/videos
  environment:
    - SE_EVENT_BUS_HOST=selenium-hub
    - SE_RECORD_VIDEO=true
    - SE_VIDEO_FILE_NAME=auto
    - SE_NODE_GRID_URL=http://selenium-hub:4444

关键配置项说明:

  • replicas: 3:创建3个相同的Chrome节点实例,提高并发能力
  • shm_size: 2gb:设置共享内存大小,防止浏览器崩溃
  • volumes映射:将宿主机/tmp/videos映射到容器内/videos目录
  • 视频录制参数
    • SE_RECORD_VIDEO=true 启用视频录制
    • SE_VIDEO_FILE_NAME=auto 自动生成视频文件名

3. 文件浏览器服务

file_browser:
  image: filebrowser/filebrowser:latest
  container_name: file_browser
  restart: always
  ports:
    - "8081:80"
  volumes:
    - /tmp/videos:/srv
  environment:
    - FB_NOAUTH=true
  • 提供Web界面(8081端口)查看录制的测试视频
  • 无认证模式(FB_NOAUTH=true)简化访问
  • 共享相同的视频存储卷(/tmp/videos)

部署与使用指南

1. 启动集群

docker compose -f docker-compose-v3-video-in-node.yml up -d

添加-d参数以守护进程模式运行

2. 访问服务

  • Grid控制台:http://localhost:4444
  • 视频管理界面:http://localhost:8081

3. 停止集群

docker compose -f docker-compose-v3-video-in-node.yml down

高级配置建议

  1. 视频存储优化

    • 修改/tmp/videos为持久化存储路径
    • 考虑添加定期清理旧视频的脚本
  2. 性能调优

    • 根据测试需求调整replicas数量
    • 监控shm_size使用情况,必要时增加
  3. 安全增强

    • 为文件浏览器添加基础认证
    • 限制Grid控制台的访问权限

常见问题排查

  1. 视频未生成

    • 检查/tmp/videos目录权限
    • 确认SE_RECORD_VIDEO环境变量设置正确
  2. 浏览器节点无法连接Hub

    • 检查depends_on配置
    • 验证网络连接和端口映射
  3. 视频文件损坏

    • 增加shm_size大小
    • 检查磁盘空间是否充足

结语

通过本文介绍的docker-compose配置,您可以快速搭建一个支持视频录制功能的Selenium Grid集群。这种部署方式不仅简化了环境搭建过程,还提供了测试过程可视化的重要能力,极大提升了自动化测试的效率和可维护性。