用途:在实现缺陷修复或新功能后,捕获浏览器截图与 GIF 录制,作为 PR 的可视化证据,用于前后对比、功能演示和审查视觉变更。交互或时序类问题(双击、加载状态、竞态条件)适合用 GIF 录制。后端改动、配置/基础设施、纯测试、CLI 工具、无 UI 的 API 不适用。
主要能力:使用 Playwright 无头 Chromium 截取整页截图;通过录制视频并用 ffmpeg 转换为 GIF,支持点击、双击、等待、填写、截图等动作步骤;将文件上传到云存储后把返回的 public_url 嵌入 PR。
使用方式:先在远程环境安装 Playwright 与 Chromium:cd /tmp && npm install playwright 2>&1 | tail -3 && npx playwright install-deps chromium 2>&1 | tail -3 && npx playwright install chromium 2>&1 | tail -3 && echo PW_READY。GIF 录制还需安装 ffmpeg:sudo apt-get update -qq && sudo apt-get install -y -qq ffmpeg 2>&1 | tail -1 && echo FFMPEG_READY。随后创建 /tmp/screenshot.mjs 或 /tmp/record.mjs 脚本,按 node /tmp/screenshot.mjs <url> <output> 或 node /tmp/record.mjs <url> <output> '<actions JSON>' 运行。上传使用 evidence-upload 技能,环境变量 $PYLOT_GATEWAY_URL 与 $PYLOT_DISPATCH_TOKEN 已存在,无需静态 AWS 密钥。最后在 PR 中以 details 折叠块嵌入图片或 GIF。
限制:可视化证据为尽力而为,绝不阻塞流水线;Playwright 安装失败、开发服务器无法启动、截图失败或上传失败时记录并跳过。整个证据阶段有 120 秒硬超时,超时即终止并继续。/tmp 中的截图是临时的,环境停止后会消失。嵌入 URL 前需先验证上传成功。