首页/开发/软件测试速查/Playwright 并行与分片
自动化测试66 条

Playwright 并行与分片

Playwright 默认按文件并行执行(workers 数量可配);CI 用 --shard=1/3 把套件切到多个作业并行,缩短反馈时间;分片之间数据与账号必须隔离。

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

并行与分片是什么

Playwright 并行分两个层次:单机多 worker(进程级并行,默认按测试文件分配)与跨机分片(--shard=i/N 把用例集切给 N 台 CI 机器)。文件级并行的前提是用例互相独立;分片把大回归按时间预算横扩,各片结束后用 blob 报告合并成完整结果。并行度不是越高越好,机器核数与环境容量才是真正的上游限制。

基本信息

单机并行workers 配置或 --workers 指定进程数
并行粒度默认按文件;fullyParallel 可细化到用例级
跨机分片--shard=2/4 表示共 4 片中的第 2 片
报告合并--reporter=blob 输出,再用 merge-reports 汇总
隔离每个 worker 独立浏览器上下文;数据与账号要同样隔离
平衡分片按时长尽量均匀,避免总时长等于最大片

命令示例

命令示例
npx playwright test --workers=4                # 单机 4 进程并行
npx playwright test --shard=1/3 --reporter=blob  # CI 分片 1,输出 blob
npx playwright merge-reports --reporter=html ./blob-report  # 合并各片报告

典型使用场景

  • 回归时长压缩:分片横扩到多台机器并行跑
  • PR 快跑:少量 worker 快速反馈,避免压垮测试环境
  • 夜间全量:多 worker 加多分片拉满吞吐
  • 慢用例定位:并行时间线上看哪些文件是长尾
  • 成本优化:按机器核数调 worker 数,避免过度并行
  • 分片隔离设计:数据库与账号按片分区,防止跨片共享状态

模式与风险

模式粒度风险
默认并行文件级同文件串行,隔离相对好做
fullyParallel用例级共享状态最容易翻车
分片跨机分片不均则总时长被最慢片拖住
blob 合并报告层不合并则各片结果散落看不见全貌
并行引入的失败先怀疑隔离:数据、账号、端口、浏览器 profile 是否真正互不共享,再去怀疑功能缺陷。
分片前先看文件耗时分布:大文件会让某片拖尾,考虑拆分大文件或按历史时长做不均衡分片。
worker 数不要超过机器可用核数:上下文切换与资源争抢会让总时长不降反升,环境服务端也可能先被打崩。

易错点

  • 共享账号被并行用例互相踢下线:每个 worker 用独立账号或会话
  • 开了 fullyParallel 但用例依赖同文件顺序:随机失败满地,回退文件级或先解耦
  • 分片不均导致总时长等于最慢片:按耗时分布调分片权重
  • 分片后不合并报告:各片结果散落,质量全貌无人可见
  • worker 数超核数:并行开销反噬,跑得越多越慢

数据来源与参考

  • Playwright 官方文档:Parallelism and sharding(playwright.dev)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌