OpenClaw · Playwright · trace · HAR · 2026

2026 OpenClaw 前端实战:
远程 Mac 解析 trace.zip 与 HAR,自动生成最小复现摘要回传 PR

2026.04.09 MacWww 工程团队 约 10 分钟阅读

偶现失败的 E2E 在评审眼里不该是「玄学」:Playwrighttrace.zip 加上一份裁剪后的 HAR,再在远程 Mac 上让 OpenClaw 按模板吐出 pr_min_repro_summary.md,每个失败 SHA 都能讲清同一套故事(环境、URL、步骤、关键请求、制品路径)。本文按 HowTo 串起来:trace 导出参数解压与字段抽取HAR 裁剪OpenClaw 填槽生成 Markdown(可选)合并请求评论 / Webhook;正文不写需登录的 Web 控制台深链。可与 E2E 回归日志分诊Playwright 自动修复思路Docker 与 Playwright 联调 同编排;生产堆栈类问题仍走 Source Map PR 摘要

核心词:OpenClaw · Playwright · trace · HAR · 远程 Mac · 最小复现 · PR 摘要

本文目录:

01 trace 导出参数:让 CI 与远程 Mac 口径一致

只有录制方式一致,对比与自动化解析才有意义。在 playwright.config 里把 use.trace 写成团队文档里的固定取值:短生命周期分支可用 on;噪声大的主分支套件用 retain-on-failureon-first-retry,避免制品体积失控。screenshotvideo 策略要与 trace 对齐——若截图是 only-on-failure,摘要页脚应写明,避免评审去找从未生成的像素。

开发者单次抓取建议用团队约定的 CLI(例如 --trace on)并固定浏览器 channel,输出落到 .openclaw/reports/<git-sha>/traces/。同级放 run_meta.json:仓库名、提交 SHA、Playwright 版本、基址 URL、鉴权模式(none / cookie / storageState)——只描述机制,不嵌入密钥。

把 trace 当证据而非整工单:流水线必须能在不打开图形化 Trace Viewer 的情况下抽出文本与网络事实。这样无头远程 Mac 与云 Runner 可互换。WebKit 比重高的套件可与 Safari 与 Playwright 远程 Mac 验收 共用同一目录约定。

02 解压 trace.zip,先抽评审最先看的信号

unzip 或在 Node 里流式解压后,优先处理三层:步骤与时间线(常见为 trace.trace)、网络trace.network 或内嵌事件)、以及绑定到失败步骤索引的控制台或页面错误。解析脚本输出 trace_signals.json,建议包含:最终 URL、视口、最后导航错误(若有)、有序步骤标题、抛出断言的步骤 id、至多二十行网络摘要(方法、url、status、耗时)。

URL 要规范化:去掉易变会话 id 类查询键(缓存破坏参数可保留),折叠默认端口,把 localhost 映射成文档里的服务名(如 webapi)。多标签页时保留拥有失败上下文的 tab id,背景标签除非在关键路径上发起请求否则可丢弃。

卫生规则

勿把原始 storageState、Cookie 或 JWT 片段写进将被 OpenClaw 渲染的 JSON。若复现必须登录,用文字说明「CI 用密钥注入的 storageState 文件」即可。

03 HAR 裁剪:最小体积仍能指证缺陷

需要 HTTP 级旁证时,从 Playwright 上下文或浏览器导出 HAR。原始 HAR 又吵又危险,建议固定执行一条确定性裁剪流水线:

规则 原因
保留被测功能的 origin 与路径前缀 保留重定向链与接口调用,去掉无关统计域名。
删除 AuthorizationCookie 与厂商私有头 避免凭据随 PR 或 IM 外泄。
对 200 响应截断或省略 body 缩小体积;仅对要在摘要中引用的 4xx/5xx 保留短 body。
按开始时间排序后限制总条数(如 80) 保证手机端阅读 Markdown 与 Webhook 载荷仍可读。

repro.har.trimmed.jsontrace_signals.json 同级存放。若存在重试前后两份 HAR,保留时间戳与 trace 元数据中失败那次一致的一份。

04 OpenClaw 模板:pr_min_repro_summary.md

OpenClaw 不宜自由发挥段落,而应按槽位填 JSON,让每条 PR 结构一致。实用模板五段:构建(SHA、Playwright 版本、浏览器)、环境(基址、特性开关开闭)、复现步骤(编号,来自 trace 步骤标题)、网络证据(三至六行:方法、路径、状态码)、制品(trace zip 与裁剪 HAR 在受控制品库中的路径——非长期公开直链,除非短期签名 URL)。

  • 输入:trace_signals.jsonrepro.har.trimmed.jsonrun_meta.json,可选 Playwright stderr 摘录。
  • 输出:pr_min_repro_summary.mdstatus.txt(如 readyincomplete_tracehar_redaction_failed)供下游门禁读取。
  • 篇幅:目标四百英文词以内等效信息量,便于 GitHub 移动端与 Slack 预览。
摘要里若引用失败 fetch,同时写清用户可见步骤(如「提交发票」)与HTTP 一行(如 POST /api/invoices → 409),评审往返会明显减少。

05 (可选)合并请求评论、gh CLI 或 Webhook

与其它 OpenClaw 门禁一致:最小权限、幂等、正文无密钥。GitHub 上可由远程 Mac 自托管 Runner 调用 gh pr comment,显式声明 GITHUB_TOKEN 权限,或使用限定单仓的细粒度 PAT。评论开头用隐藏标记如 <!-- openclaw-min-repro-sha:abc1234 -->,重复任务时更新同条而非刷屏。

推送到内部网关时,与其它报告类型相同,例如:

curl -sS -X POST "$MIN_REPRO_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --rawfile body pr_min_repro_summary.md --arg sha "${GITHUB_SHA:-}" '{text: $body, sha: $sha}')"

按 SHA 去抖,对 429 做指数退避;失败写入 status.txt,避免在 Agent 循环里盲重试。若合规禁止在 PR 贴 HAR,即使已裁剪也只附 Markdown,二进制留在批准的制品桶。

06 排错 FAQ

能打开 trace 但步骤像空的:确认捕获的是正确的 browser context,且 trace 未被磁盘配额中途截断。用相同 trace 模式复跑,并核对笔记本与 Mac Worker 的 Playwright 版本漂移。

HAR 里只有 CORS 或 opaque 失败:trace 仍可能带导航错误——合并控制台与网络信号后再让 OpenClaw 写摘要,并说明测试用的是 page.request 还是浏览器 fetch。

Webhook 返回 401:轮换签名密钥、检查出站 IP 白名单、确认 JSON 转义未破坏 Markdown 正文。

PR 评论重复:按标记拉取已有评论更新,或在 POST 前在 .openclaw/reports/<sha>/ 写锁文件。

合规禁止贴 HTTP 转储:裁剪 HAR 只放批准存储;PR 仅写内部引用链接与方法、路径、状态码,不写响应体全文。

要点回顾

按 SHA 固定 trace 模式与输出目录,结构化产出 trace_signals.json,与脱敏后的 repro.har.trimmed.json 配对,经 OpenClaw 渲染 pr_min_repro_summary.md,再以与现有门禁相同的令牌与 Webhook 纪律回传。远程 Mac 适合长期跑这条链路:路径稳定、容纳大 trace,并可与 WebKit / Safari 手测同机对照,而不把工程师笔记本当成制品服务器。

远程 Mac · trace / HAR 流水线 · 免登录 CTA

要让 OpenClaw 7×24 解压 trace、裁剪 HAR 并回传 PR?用 MacWww 远程 Mac

Apple Silicon 独享节点可常驻 Playwright 解析任务,与 Safari 真机验收同机。查看 帮助中心(SSH/VNC)算力资费,需要下单可走 购买页——无需登录即可选区结算。延伸阅读 中文技术博客官网首页

更多实践:博客列表首页

免登录购买远程 Mac