Bamboo运行Selenium测试无失败用例但构建失败问题排查
问题现象
- 同一份Selenium自动化测试脚本在本地Windows环境可正常运行,完整构建最长耗时仅2分钟
- 在Linux环境的Bamboo构建服务器上执行部署时,构建耗时1小时19分钟后失败,前台报错提示为
No failed test found. A possible compilation error occurred
根因链路定位
从构建日志可逐层定位错误传递路径:
maven-surefire-plugin:2.14.1执行default-test目标时,fork出的测试进程出现异常- TestNG抛出
TestNGException,无法完成测试类Test_Scenarios.Main的实例化 - 触发异常的直接原因:测试类初始化阶段调用
BrowserManager.getDriver()方法启动ChromeDriver访问目标测试地址时,抛出org.openqa.selenium.TimeoutException网络超时异常 - 最终状态:实际执行的测试用例数为0,Maven进程返回码为1,被Bamboo判定为任务失败
优先排查方向
- 核对Linux构建节点的Chrome与ChromeDriver版本匹配关系,跨环境运行时本地与服务器的浏览器、驱动版本不一致是此类问题的高频诱因
- 检查Bamboo Linux构建节点的网络访问权限:确认节点可正常连通目标测试地址,企业内网构建节点通常默认配置网络ACL限制,未加白的情况下无法访问测试环境地址,会直接触发页面访问超时
- 检查Linux环境下的Chrome启动参数:必须配置
--headless(无头模式,适配服务器无图形界面的场景)、--no-sandbox、--disable-dev-shm-usage参数,缺省参数会导致Chrome进程启动卡死,直到触发超时阈值 - 核对ChromeDriver文件权限:Linux环境下需要给ChromeDriver二进制文件添加可执行权限,权限不足会导致驱动初始化阶段挂起超时
- 调整maven-surefire-plugin与Selenium的超时配置:1小时19分钟的耗时远高于正常测试执行时长,说明当前配置未给驱动启动、页面加载设置合理超时阈值,导致进程挂住直到系统级超时才退出
排查可参考附随材料:完整构建日志、Main测试类源码、项目pom.xml配置文件
内容的提问来源于stack exchange,提问作者GHULAM NABI
相关产品推荐
相关产品推荐

