一行 URL,Agent 帮你跑完整个项目的 UI 测试

15 阅读6分钟

UI 测试的日常,是不是这样?

周五下午,上线前最后一次回归。你打开测试平台,手动点过每一个页面——首页、列表页、详情页、创建表单、提交、删除……一个流程走完 20 分钟,10 个流程就是半个下午。中间弹了个弹窗没处理,整个流程白跑。

你想写自动化脚本?打开框架文档,写选择器、写断言、写等待逻辑、处理异步加载……一个用例写半小时,页面一改版,选择器很可能立刻失效。

更扎心的是:用例覆盖全凭经验,漏测的永远是没想到的那个路径。

如果只需要说一句"帮我测这个网站",AI 就自动遍历页面、梳理用例、执行测试、输出报告呢?

这正是 ui-testing 想解决的问题。

ui-testing:一句话搞定 UI 自动化测试

ui-testing 是一个基于 Chrome DevTools MCP 的 UI 自动化测试 Skill。给它一个 URL,它就能自动完成从页面探索到报告输出的整条链路:

用 ui-testing 测试 https://your-site.com

接下来它会自动完成:

  1. 页面 遍历:基于 BFS 先广后深,自动发现站内可达页面
  2. 用例梳理:从页面结构中提炼端到端业务流程,并按优先级排序
  3. Playbook 沉淀:按站点保存测试经验,下次直接复用
  4. 测试执行:直连本地 Chrome,真实操作页面并截图留证
  5. 报告输出:生成标准化 Markdown 报告,包含通过率、报错统计和截图

零脚本,零配置,零维护。 你只负责说"测什么",它负责补上"怎么测"。

它是怎么做到的?

直连你的 Chrome,不是模拟请求

ui-testing 通过 Chrome DevTools MCP 直连你本地已打开的 Chrome 浏览器。就是你日常使用的那个 Chrome:已登录的账号、已保存的 Cookie、当前真实的前端状态,全都在。

这意味着它不需要额外启动一个隔离的无头浏览器,也不需要你重新登录一遍系统。对后台系统、运营平台、数据控制台这类"必须登录后才能测"的场景尤其友好。

前端框架感知,不瞎操作

现代 Web 应用大量使用 Vue、React、Angular,表单状态往往由框架自己的响应式系统管理。直接改 DOM 值,很多时候并不等于"真正完成输入":Vue 的 v-model 可能不会触发,React 的 state 也未必会更新。

ui-testing 内置框架探测,会自动识别页面所使用的框架,并选择对应的交互策略:

框架操作方式
Vue 2通过 vue 实例直接操作组件数据
Vue 3通过 vue_app 获取应用实例
React沿 Fiber Tree 定位组件状态
通用回退使用原生 setter + dispatchEvent 强制触发响应

不是暴力填表,而是用框架的方式操作框架。

Playbook 驱动,越跑越快

第一次测试某个站点时, ui-testing 会遍历页面、梳理用例、生成 Playbook。第二次再测同一个站点,可以直接复用 Playbook,跳过大部分重复探索,速度会明显提升。

Playbook 不只是用例列表,还会沉淀站点的技术特征:框架类型、表单组件路径、下拉框值映射、SPA 路由特征……这些信息会让后续测试更精准,也减少重复试错。

想更新用例?加一句话就行:

用 ui-testing 测试 https://your-site.com,更新用例

经验自进化,越用越聪明

这是 ui-testing 最有意思的设计之一:三层经验 回写 机制

层级回写内容效果
Playbook 层站点技术特征、表单映射同站点复测更快更准
通用脚本层新框架探测逻辑支持的框架越来越多
策略层新场景的处理方案Shadow DOM、iframe、富文本编辑器逐步覆盖

遇到新框架,就回写到探测脚本;遇到新场景,就回写到策略层。你测过的每一个站点,都在反过来增强这个工具。

更重要的是,这些经验不是黑盒参数,而是以 Markdown 形式沉淀下来:人可读、可版本控制、可迁移,也方便团队协作和持续维护。

它适合哪些场景?

如果你符合下面任意一种情况, ui-testing 都会很顺手:

  1. 上线前回归:想快速确认关键流程有没有被改坏
  2. 后台系统冒烟测试:系统依赖登录态,传统脚本启动成本高
  3. 新页面上线验收:先让 AI 帮你把可达路径和基础用例摸清楚
  4. 重复性巡检:同一个站点需要定期复测,希望越测越快

尤其是那种"人点起来很机械、写脚本又嫌重"的场景,它的价值会非常明显。

快速上手

安装 Skill

使用 Agent 自然语言自动安装(推荐)。你只需要把下面这段话发给 Agent,让它自己完成下载、放置和接入:

请帮我安装 ui-testing 这个 Skill:
1) 从 https://github.com/bodhiye/ui-testing 获取最新代码,将整个 ui-testing 目录放到你的 skills 目录下
2) 运行 node scripts/chrome-devtools-mcp.mjs 启动 Chrome DevTools 端口
3) 将脚本输出的 mcpServers.chrome-devtools 配置片段注册到你的 MCP 配置中,确保端口号与脚本输出一致;若需重载配置则自行重启
4) 调用 list_pages 验证 MCP 工具可用,确认能返回 Chrome 标签页列表
完成后告诉我:Skill 放置路径、MCP 配置位置、验证结果

对话即测试

用 ui-testing 测试 https://your-target-site.com

如果你已经跑过一次,还可以直接让它更新既有用例:

用 ui-testing 测试 https://your-target-site.com,更新用例

使用建议

为了让结果更稳定,也更安全,实际使用时建议注意这几点:

  1. 优先在真实可操作的登录态下执行ui-testing 直连本地 Chrome,登录后再测通常更接近真实业务流程
  2. 先从只读或低风险流程开始:尤其是在生产控制台、运营后台这类环境里,先验证页面进入、搜索、筛选、表单打开等安全动作
  3. 把复测交给 Playbook:首次探索负责"摸清页面",后续复测负责"快速验证变更"
  4. 把报告当成协作产物:测试截图、失败步骤、页面上下文可以直接拿给研发、测试、产品一起看

写在最后

UI 自动化测试的痛点,从来都不是"能不能测",而是维护成本太高:脚本和页面强绑定,页面一变脚本就废;用例靠人写,覆盖率全凭经验;框架五花八门,适配成本居高不下。

ui-testing 换了一个思路:让 AI 去理解页面、理解框架、理解业务,再替你完成从用例设计到测试执行的整条链路。 用例自动生成、经验自动沉淀、框架自动适配,你只需要给出一个 URL。

它当然不是 UI 测试的终局,但很可能代表了一种新方向:测试不再从脚本开始,而是从一句自然语言开始。