TestHub 是一个强大的自动化测试平台,但在使用 Docker 部署时,可能会遇到一些意想不到的问题。本文将分享我在 Docker 部署 TestHub 过程中遇到的两个核心问题及其解决方案,希望能帮助到正在使用或准备部署 TestHub 的测试小伙伴。
遇到的问题
问题一:AI 智能测试功能异常
现象描述
在部署完成后,尝试使用 AI 智能测试功能时,发现测试并没有像预期那样自动打开浏览器执行测试用例,而是直接报错或没有任何反应。
原因分析
TestHub 的 AI 智能测试功能依赖于 Playwright 进行浏览器自动化操作。但在 Docker 容器中,浏览器和驱动程序并未预装,需要在使用时动态下载。由于服务器网络限制或驱动下载失败,导致浏览器无法正常启动,测试功能失效。
问题二:Allure 测试报告生成失败
现象描述
在执行完 API 接口测试后,点击查看测试报告时,系统提示以下错误:
```
Allure command failed: [Errno 2] No such file or directory: '/app/allure/bin/allure'
Allure command failed: Command '['sh', '/app/allure/bin/allure', 'generate', ...]' returned non-zero exit status 2.
```
或者报告页面显示乱码。
原因分析
1.**JDK 缺失**:Allure 是基于 Java 开发的工具,需要 JDK 环境才能运行,但容器中未预装 JDK
2.**Allure 缺失**:Allure 命令行工具未包含在镜像中
3.**权限问题**:Allure 脚本没有执行权限
4.**换行符问题**:从 Windows 环境复制的 Shell 脚本包含 CRLF 换行符,在 Linux 中无法正常执行
解决方案
解决方案一:使用预装浏览器的基础镜像
针对 AI 智能测试的浏览器问题,最简单有效的方法是使用官方预装了 Playwright 和浏览器的 Docker 基础镜像。
推荐镜像
mcr.microsoft.com/playwright/python:v1.50.0-noble
优势
- 预装了 Playwright 框架
- 内置 Chromium、Firefox、WebKit 三大浏览器
- 省去了手动安装浏览器和驱动的繁琐步骤
- 镜像经过官方优化,稳定性高
解决方案二:集成 Allure 和 JDK 环境
针对测试报告生成的问题,需要在容器中完整配置 Allure 和 JDK 环境。
总结
使用 Docker 部署 TestHub 时,主要会遇到以下两类问题:
1.**浏览器驱动缺失** → 使用 Playwright 官方基础镜像
2.**Allure/JDK 缺失或配置错误** → 在 Dockerfile 中完整安装并配置
**关键点提醒:**
- 优先使用官方预装浏览器的基础镜像
- JDK 和 Allure 必须正确安装并配置环境变量
如果遇到其他问题,可以借助 AI 工具(如 Claude、GPT)分析日志并修复,大大提高排查效率。
希望本文能帮助到正在使用 TestHub 的开发者,如有其他问题,欢迎交流讨论!