You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins执行Docker中Selenium测试后Allure报告显示0结果求助

问题根因排查与解决方案

常见原因

  • Allure插件路径配置错误:Jenkins Allure插件需要读取的是Allure原始结果目录(通常命名为allure-results,存放测试用例执行的原始结果文件、附件等),而非生成后的allure-reports静态报告目录。如果插件配置的扫描路径填成了allure-reports,就会识别不到任何用例数据。
  • Docker容器结果未持久化到Jenkins工作空间:Selenium用例是在Docker容器内执行的,容器内生成的allure-results原始结果如果没有通过volume挂载或者docker cp命令复制到Jenkins任务的工作空间下,Allure插件无法访问到容器内的原始结果文件。你提到的allure-reports里的testrun.json、executor.json仅为报告元数据,缺少核心的*-result.json格式用例结果文件,就会显示0条测试结果。
  • 原始结果目录权限不足:你仅修改了allure-reports目录的所有者为Jenkins用户,但如果allure-results原始结果目录的所有者还是root或者其他用户,Jenkins没有读取权限,也会无法识别用例数据。
  • 测试框架未配置Allure适配器:Selenium对应的测试框架(TestNG/Pytest/JUnit等)没有集成Allure适配器,执行用例时只会生成原生的测试报告,不会输出Allure可识别的*-result.json格式用例结果文件,哪怕目录挂载正确也没有有效数据。
  • 执行步骤顺序错误:如果先执行Jenkins Allure报告生成步骤,再从Docker容器中复制结果文件到工作空间,Allure插件扫描时结果文件还不存在,也会导致0条结果。

对应解决方法

  1. 修正Allure插件配置:进入FEXT_21.4_AUTOMATION任务配置页,找到「Allure Report」配置项,将「Results」路径填写为原始结果目录路径allure-results,不要填allure-reports。
  2. 配置Docker结果持久化:执行Docker run命令时添加volume挂载参数,将容器内的allure-results目录映射到Jenkins任务当前工作空间,示例命令:
docker run -v $(pwd)/allure-results:/path/to/container/allure-results [你的其他镜像启动参数]

如果是docker-compose执行,在对应服务下添加volumes配置即可。
3. 修正目录权限:执行chown命令时同时覆盖allure-results目录:

chown -R jenkins:jenkins ./allure-results ./allure-reports
  1. 补全测试框架Allure集成:根据你使用的测试语言和框架安装对应Allure适配器,比如Python+Pytest环境安装allure-pytest,Java+TestNG环境引入allure-testng依赖,执行用例时添加生成Allure结果的参数,比如Pytest执行时添加--alluredir=allure-results参数。
  2. 调整任务步骤顺序:确保步骤顺序为「拉取代码 -> 启动Docker容器执行用例(生成原始结果到挂载目录) -> 停止/销毁容器 -> 执行Allure插件生成报告」,不要调换后两步的顺序。

内容的提问来源于stack exchange,提问作者user3595231

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:27:03