2026 OpenClaw 前端实战:
远程 Mac 聚合 Playwright HTML 报告与阈值指纹生成单一 PR 门禁摘要
前端 CI 维护者若只认 JUnit 会缺可点堆栈与截图;trace 全量又拖爆 PR。本文写 HTML Reporter 与附件阈值、stderr 指纹、Node 24 下 openclaw 并成单一 Markdown。含痛点、差异表、目录阈值模板令牌、六步、口径;链 JUnit 文、分片、列表。
痛点拆解(编号)
一只贴 XML 行号,评审难以秒开浏览器复现,🚀 HTML 报告缺位。
二默认打包 trace 与高清图,PR 附件超配额,评论体被截断。
三stderr 重复刷同类告警,网关多次触发造成噪声评论。
00 与 JUnit 与 trace 聚合的差异矩阵
JUnit 文写得用例分;本文主可读页与字节预算,trace 外链按需。
| 维度 | JUnit 与 trace 线 | HTML Reporter 线(本文) |
|---|---|---|
| 主证据 | 用例数、栈 XML、trace 索引 | playwright-report/index.html 与资源树 |
| 体积风险 | zip 与 HAR 易顶爆 | 阈值卡总字节与单文件峰值超限剔 |
| 去抖 | 用例名哈希 | stderr 规范化后短指纹与 reporter 版本号 |
| 评审体验 | 表格与日志片段 | 评论内嵌折叠链到静态页 |
01 产物目录约定
根目录固定 playwright-report/,CI 与远程 Mac同路径;blob-report/ 启用要清。多分片用 shard-<n> 再合成 index.html。见 分片文。
02 阈值参数
summary.json 设 maxTotalBytes、maxSingleAttachmentBytes、maxStderrLines;超阈剔字体与大 PNG 留 WebP。trace 默认不上传白名单防与 JUnit 线双胀。
03 合并模板与 openclaw 网关
Markdown 含标题、阈值一行、reportUrl、stderrFingerprint。Node 24 脚本 stdin 喂 JSON 调 openclaw 写评论;与 ESLint 块并排放 HTML 锚点。字段别抄 JUnit 模板键。
04 权限与令牌最小化
PAT 仅 pull_requests:write 与 contents:read,OIDC 可则禁长效。容器只传路径与指纹不写整目录。远程与 CI 同最小号审计带 SHA。
可复现落地步骤(≥5)
- 对齐引擎。在
package.json指定 Node 24 与 Playwright 版本锁,远程与 CI 同npm ci。 - 产出 HTML。
npx playwright test --reporter=html,list,关闭默认 trace 上传或改按需。 - 量体积。脚本遍历
playwright-report求和,对照maxTotalBytes写通过或失败 JSON。 - 指纹 stderr。去时戳与临时路径后 sha256 前八位写入摘要。
- 调网关。
cat summary.json | node scripts/post-openclaw-pr.mjs幂等键用repo:pr:sha:fingerprint。 - 回读评论。确认折叠块只更新 HTML 段,JUnit 段仍由另 job 维护。
05 排障 FAQ
问:评论里链接打不开?答:检查静态资源是否一并上传至制品或 Pages,仅传单文件 index 会丢样式。
问:阈值误杀?答:把字体与视频移出 report 目录或提高 maxSingleAttachmentBytes 并记录变更工单。
问:与 JUnit 摘要重复?答:拆两个锚点块或合并脚本先读 JUnit 再拼接 HTML 行,避免两段结论矛盾。
可引用口径(≥3)
主分支 HTML 包默认上限建议写在 summary 并与制品策略一致。
stderr 指纹变更才允许刷新同 PR 评论,防刷屏。
远程 Mac 跑 WebKit 与 HTML 同路径,减少仅 Linux 绿而苹果红。