SuperAPI AI 工具集

web-testing

测试与质量

查看项目

更新于 10-16 02:39

技能介绍

用途:对仪表盘 UI 变更做探索性、AI 驱动的验证,而非回归测试;回归覆盖由 L1(仪表盘测试目录下的冒烟与端到端套件)负责。L2 用于发现 L1 遗漏的问题,如布局缺陷、移动端回归、仅在真实浏览器中失败的交互流程。流程本身与仓库无关,可分叉后替换路由表、测试路径和判定模式。

触发时机:PR 触及 apps/dashboard/**;L1 端到端失败需判断是真实回归、不稳定还是环境问题;有人提出“验证 UI”或“dogfood 此变更”。

被测应用:CI 构建 crates/stiglab/deploy/Dockerfile,单一镜像打包 Rust 后端(stiglab 与 synodic)和预构建仪表盘 SPA,监听 http://localhost:3000。主要路由包括 /、/sessions、/sessions/:id、/nodes、/artifacts、/spine、/governance、/settings。

视口(必须同时测试两者):桌面 agent-browser set viewport 1280 720;移动 agent-browser set viewport 375 812。移动端重要:仪表盘带响应式布局(md: 断点),水平溢出和导航被隐藏是两大回归类型。

流程:读取 diff(git diff $DIFF_RANGE,DIFF_RANGE 由 CI 以环境变量提供);将变更映射到路由(如 src/pages/SessionsPage.tsx ⇒ /sessions,src/components/layout/** ⇒ 所有路由);对每个受影响路由、每个视口执行 agent-browser open http://localhost:3000<route>,快照并验证标题与关键元素渲染,主动操作交互元素(点击按钮、提交表单、打开对话框)并验证 UI 状态变化,检查布局缺陷(移动端水平滚动或导航遮挡内容即为失败),执行 agent-browser screenshot --screenshot-dir /tmp/l2-screenshots 并将输出重命名为 {route-slug}-{desktop|mobile}.png;固化发现:验证新行为或捕获可描述修复方案的缺陷时,在 apps/dashboard/tests/smoke/(组件级)或 apps/dashboard/tests/e2e/(浏览器级)写确定性 L1 测试;输出判定:按 tests/l2-verdict-schema.json 返回 JSON,所有受影响路由在两个视口均通过为 PASS,任一失败为 FAIL 并在 viewports[].issues[] 记录具体问题。

分诊模式:在 L1 端到端失败后调用,读取 apps/dashboard/tests/e2e/ 下失败测试文件,用 agent-browser 对 http://localhost:3000 复现,将每个失败分类为回归(真实缺陷)、不稳定(间歇/时序)或环境(测试工具或 CI 问题),按 tests/l2-triage-schema.json 返回含根因和建议修复的 JSON。

限制与护栏:范围限定在 diff,不因一行改动重测整个应用;截图是必需证据,无截图即视为该视口未运行;不要臆造路由,若 diff 中新增路由则使用它,否则沿用上述路由表;保持低成本,每个视口一个浏览器会话即可。其他仓库采用时需自行替换具体路由表、测试路径和判定模式。