Selenoid 特殊能力详解:提升自动化测试效率的进阶功能
前言
Selenoid 作为一款高效的 Selenium 容器化解决方案,除了提供基础的浏览器自动化能力外,还内置了一系列特殊功能,可以显著提升自动化测试的效率和体验。本文将深入解析这些特殊能力,帮助测试工程师充分利用 Selenoid 的强大功能。
实时浏览器屏幕监控 (enableVNC)
应用场景:当需要实时观察测试执行过程时,VNC 功能非常有用。
实现原理:Selenoid 通过容器内集成的 VNC 服务器,将浏览器操作画面实时传输到客户端。
配置方法:
{
"enableVNC": true
}
技术细节:
- 需要容器镜像已预装 VNC 服务器
- 画面通过 WebSocket 协议传输,访问地址格式为
/vnc/<session-id> - 推荐配合 Selenoid UI 使用以获得最佳体验
自定义屏幕分辨率 (screenResolution)
注意事项:
- 此设置仅影响屏幕分辨率,不控制浏览器窗口大小
- 容器运行的是无头浏览器,无法使用 maximize 方法
- 建议配合
setSize方法使用
配置示例:
{
"screenResolution": "1280x1024x24"
}
视频录制功能
前置准备:需要配置视频录制环境
基础配置:
{
"enableVideo": true
}
高级视频配置选项
- 自定义视频名称:
{
"videoName": "test-case-001.mp4"
}
- 视频分辨率控制:
{
"videoScreenSize": "1024x768"
}
- 帧率调整:
{
"videoFrameRate": 24
}
- 编解码器选择:
{
"videoCodec": "mpeg4"
}
会话日志保存 (enableLog)
配置方法:
{
"enableLog": true,
"logName": "test-session.log"
}
全局配置:可通过启动参数 -save-all-logs 为所有会话启用日志记录
测试命名 (name)
应用场景:在调试多测试用例时特别有用
配置示例:
{
"name": "用户登录测试"
}
会话超时控制 (sessionTimeout)
配置示例:
{
"sessionTimeout": "30m"
}
格式说明:支持 Golang 时间格式(如 30m、10s、1h5m)
时区设置 (timeZone)
配置示例:
{
"timeZone": "Asia/Shanghai"
}
环境变量配置 (env)
应用场景:测试不同语言环境等场景
配置示例:
{
"env": ["LANG=zh_CN.UTF-8", "LANGUAGE=zh:en"]
}
容器网络配置
应用容器链接 (applicationContainers)
配置示例:
"applicationContainers": ["app-service:myapp"]
}
自定义 DNS 服务器 (dnsServers)
配置示例:
{
"dnsServers": ["8.8.8.8"]
}
附加网络配置 (additionalNetworks)
配置示例:
{
"additionalNetworks": ["test-network"]
}
高级功能
主机条目配置 (hostsEntries)
配置示例:
{
"hostsEntries": ["test.example.com:192.168.1.100"]
}
容器标签 (labels)
应用场景:日志分类和检索
配置示例:
{
"labels": {
"environment": "staging",
"testType": "regression"
}
}
Android 设备模拟
皮肤选择:
{
"skin": "WXGA720"
}
自定义分辨率:
{
"skin": "720x1280"
}
协议扩展支持
对于受限制的客户端,可通过协议扩展传递能力:
{
"browserName": "chrome",
"selenoid:options": {
"enableVNC": true,
"screenResolution": "1920x1080x24"
}
}
结语
Selenoid 的这些特殊能力为自动化测试提供了更多可能性和灵活性。合理利用这些功能可以显著提升测试效率、简化调试过程,并为复杂场景的测试提供支持。建议根据实际项目需求,选择合适的功能组合使用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



