首页/开发/CI/CD 与发布速查/并行作业与测试分片
流水线设计54 条

并行作业与测试分片

把一套测试切成多片并发执行:GitLab parallel:N 自动分配分片序号,Jest/Pytest 等按分片参数取子集。

CI/CD 与发布速查开发更新于 2026-10-12
GitLabparallel: N,作业内可用 $CI_NODE_INDEX / $CI_NODE_TOTAL
分片工具pytest-split、jest --shard、rspec 等按分片号选取用例
收益测试时长近似按分片数收敛,受 Runner 并发上限约束

GitLab 分片

GitLab 分片
test:
  parallel: 4
  script: ./ci/run-tests.sh $CI_NODE_INDEX $CI_NODE_TOTAL
分片不均衡(个别分片慢)会让整体等待落伍者,先按耗时分布切分再谈扩容。

易错点

  • parallel 与 artifacts 组合时产物命名冲突:同名产物需按分片号区分
  • 共享测试资源(数据库、账号)被并发争用:为每分片准备独立资源或串行化关键段

数据来源与参考

  • GitLab Docs《Parallelize large jobs》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌