首页/开发/软件测试速查/CI 测试产物的归档
自动化测试66 条

CI 测试产物的归档

测试产物(报告、日志、截图、trace、覆盖率文件)按作业上传为构件:命名带上运行号与用例标识便于检索;只保留失败用例的现场,兼顾存储成本与排错需求。

软件测试速查开发更新于 2026-10-13

CI 测试产物是什么

CI 测试产物指作业运行中产生的报告、日志、截图、trace、覆盖率数据等文件,按约定上传为流水线构件(artifacts)。命名带上运行号与用例标识便于检索与追溯;只保留失败用例现场、其余按策略过期清理,可以兼顾存储成本与排错需求。

基本信息

典型内容JUnit XML、HTML 报告、失败截图、trace、录屏、服务端日志
命名约定包含流水线号、作业名、用例标识与时间戳
保留策略按天或按大小设置过期时间,防止存储膨胀
上传时机即使测试失败也要上传,否则现场直接丢失
访问控制含敏感数据的报告要限制访问或先脱敏

典型使用场景

  • 失败排查:直接从构件取截图、trace 与服务端日志,不依赖重跑
  • 报告聚合:JUnit XML 交给平台汇总趋势与不稳定用例排行
  • 交付证据:保留发布分支与关键版本的完整测试记录
  • 性能对比:保存压测报告与指标文件作为版本间基线
  • 缺陷关联:把构件链接贴进缺陷单,减少来回沟通
  • 审计追溯:按运行号还原某次发布的验证过程

上传产物(GitHub Actions 示意)

上传产物(GitHub Actions 示意)
# 步骤:跑测试后无条件上传
- name: Run tests
  run: npm test
- name: Upload artifacts
  if: always()                 # 失败也要上传,保留现场
  uses: actions/upload-artifact@v4
  with:
    name: test-artifacts-${{ github.run_number }}
    path: |
      test-results/
      reports/
    retention-days: 14

常见产物与用途

产物内容主要用途
JUnit XML用例通过失败的机读结果平台聚合与趋势
截图与 trace失败现场回放UI 自动化排查
HTML 报告人可读的详细结果评审与复盘
覆盖率文件cobertura 或 lcov 格式质量门禁与趋势
服务端日志接口与依赖日志片段环境问题定位
只保留失败现场能显著降低上传时长与存储开销(如 trace 设为仅失败或首次重试时保留);首次排查偶发问题时,可临时改为全量保留再收紧。
上传后要校验构件非空:路径写错时流水线依然显示成功,但下载下来是空的,报告汇总与排查都会静默失败。

易错点

  • 只在成功时上传产物:失败现场丢失,排查只能靠重跑,偶发问题永远抓不到
  • 产物名不带运行号:下载多个历史构件后无法区分先后,容易用错数据
  • 没有保留策略:构件无限堆积,存储成本失控还拖慢流水线页面
  • 密码或令牌被写进日志后上传:日志与报告必须脱敏,访问权限也要收敛
  • 上传目录写错:为空也无人发现,上传后要校验文件数与大小

数据来源与参考

  • GitHub Actions 文档:Storing and sharing data(docs.github.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌