首页/开发/软件测试速查/Playwright Trace 回放
自动化测试66 条

Playwright Trace 回放

Trace Viewer 记录执行快照、DOM、网络与控制台信息,可按时间轴回放;生成方式为配置 trace 选项或 CLI 参数,npx playwright show-trace trace.zip 查看。

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

Trace 是什么

Playwright Trace Viewer 记录一次测试执行的完整现场:按时间轴回放的页面快照(DOM)、网络请求、控制台输出与执行步骤。产物是一个 trace.zip;用 npx playwright show-trace <文件> 打开,不必拥有原环境即可查看。适合排查 CI 上失败或不稳定的用例:比录像信息全、比截图可交互。

基本信息

适用平台Playwright(Node.js/TypeScript、Python、Java、.NET 绑定)
生成方式配置 use.trace 策略、context.tracing.start/stop、CLI 参数 --trace
查看命令npx playwright show-trace trace.zip
策略取值off / on / retain-on-failure / on-first-retry / on-all-retries

典型使用场景

  • CI 失败用例排错:回放确认是等待、选择器还是网络问题
  • 不稳定用例:on-first-retry 只记录重试现场,控制体积
  • 团队共享现场:trace.zip 作为构件上传,他人直接打开
  • 分析慢用例:按时间轴查看每步耗时与等待空白段
  • 前后端联调:网络面板直接看请求与响应载荷

配置与查看

配置与查看
# playwright.config.ts
retries: 1,
use: {
  trace: 'on-first-retry',   # 首次重试时开始记录,兼顾体积与现场
}

# 手动控制(脚本中)
await context.tracing.start({ screenshots: true, snapshots: true });
await context.tracing.stop({ path: 'trace.zip' });

# 查看
npx playwright show-trace test-results/.../trace.zip

trace 策略对照

取值行为适用
off不记录本地稳定套件
on每个用例都记录调试期临时使用,体积最大
retain-on-failure记录但仅失败保留希望每个用例都有现场
on-first-retry首次重试开始记录CI 平衡体积与现场,推荐起点
on-all-retries每次重试都记录反复不稳定用例的深度排查
trace 记录的是逐动作可回放快照而非视频:能点开 DOM、控制台与网络详情;体积随页面快照数量增长,长用例更明显。
trace 内可能包含敏感数据(请求头中的令牌、用户信息):作为 CI 构件上传时需限制访问范围,必要时先脱敏。
trace 与 video 取舍不同:video 直观但不可交互,trace 可点开 DOM 与控制台复查;CI 资源紧张时优先保 trace,需要给人看操作过程时再叠加 video。

易错点

  • 全量开启 trace(trace: 'on')导致运行时间与磁盘占用明显上升,CI 上传变慢
  • 失败用例的 trace 未归档到 CI 构件,事后拿不到现场
  • 只上传 trace 而不保留失败日志与报告链接,排错入口分散、时间被浪费
  • 把 trace 当性能剖析工具:记录本身有开销,时长数据不能直接用于性能结论
  • trace 含敏感请求数据仍公开上传,造成令牌与用户信息泄露
  • 把 trace 上传到外部在线查看器处理含令牌的现场,等价于把敏感数据交给第三方
  • 失败保留策略依赖重试:没有配置 retries 时 on-first-retry 永远不会记录,失败现场为空

数据来源与参考

  • Playwright 官方文档:Trace Viewer(playwright.dev)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌