Catcher 场景:AI 驱动的 Web 测试——用自然语言写测试,在本地运行,数据不出你的电脑
一个真实的痛点
你在用 Claude Code 或 Cursor 开发 Web 应用,每次改完前端交互逻辑后都得手动测试一遍——登录、填表单、点按钮、验证结果。重复机械劳动不说,稍微复杂的场景(多步骤流程、不同用户角色)手动跑一遍就是十几分钟。
你试过 SaaS 版的 AI 测试工具,但它们有一个本质问题:你的测试脚本、网站会话、Cookie、截图全部上传到云端。对于公司内部系统、开发环境、或含有敏感信息的测试页面,你根本不敢用。
痛点对比
| 维度 | 传统 SaaS 测试工具 | 纯手工测试 | Catcher |
|---|---|---|---|
| 数据隐私 | 测试数据上传至云端 | 无数据泄露风险 | 完全本地运行,数据不出设备 |
| LLM 费用 | 按次计费(包含在订阅中) | 零成本 | 自带 Key(BYOK),你付给模型提供商 |
| 测试脚本编写 | 需要写 Playwright/Cypress 代码 | 手动点击操作 | 自然语言描述测试步骤 |
| 复杂选择器处理 | 需要手动定位 DOM 元素 | 视觉识别 | Vision-coordinate 自动回退 |
| 本地环境测试 | 有限(通常只支持公网可达的站点) | 完全支持 | 完全支持(Localhost、内网均可) |
| 定价 | 月费 $50-500+ | 免费 | 免费开源(MIT) |
快速上手
安装
从 Catcher GitHub Releases 页面下载对应平台的安装包:
- Windows:下载
Catcher Setup x.y.z.exe - macOS Apple Silicon:下载
Catcher-x.y.z-arm64.dmg - macOS Intel:下载
Catcher-x.y.z.dmg
安装包未经过代码签名,首次启动时系统会给出安全警告——按提示允许运行即可。
配置 LLM
启动 Catcher 后,进入 Settings 页面,从下拉列表选择一个模型并粘贴你的 API Key。Catcher 支持 OpenAI(GPT-4o-mini 为默认)、Anthropic Claude、Google Gemini 以及任何兼容 OpenAI 格式的本地端点(如 Ollama)。所有预设模型都支持视觉能力,这对后续的 Vision-coordinate 回退功能至关重要。
第一个测试
- 点击 + Add site,输入你的网站 URL
- 点击 + New test,用自然语言写下测试步骤:
Click the 'Sign in' button Type 'alice@example.com' in the email field Type 'password123' in the password field Click the 'Continue' button Verify the page contains 'Welcome, Alice'
- 点击 ▶ Run this test,Catcher 会在你本地启动一个 Playwright 浏览器,逐行执行你的指令,右侧面板实时显示浏览器视口画面和执行推理过程。
核心能力
启发式匹配 + 仅必要时调用 LLM
Catcher 不依赖 LLM 做每一步决策。对于形如 Click the '保存' button 这类步骤,它的启发式引擎(heuristics)会先解析 DOM 树,找出与文本最匹配的可点击元素——如果置信度足够高,直接执行,全程不调用任何 API。只有匹配不明确时,才会将当前的 DOM 快照发给 LLM 做判断。这让简单测试跑得又快又便宜——大部分点击操作从未触及 API。
Vision-coordinate 回退:对付复杂页面的杀手锏
Web 测试中最头疼的问题之一:选择器失效。弹窗覆盖层(Modal overlay)、CSS 动画、元素位移、响应式布局变化——所有这些都会让传统的 Playwright 选择器失效。
Catcher 的处理链是渐进式的:
- Playwright
loc.click()— 标准方法 - Corner-click — 针对背景遮罩层
- 原生
el.click()viapage.evaluate— 绕过 Playwright 的 actionability 检查 - Vision-coordinate 回退 — 截取当前页面截图,将截图发给 LLM,让模型在图片中标注
{x, y}坐标,然后在该坐标处点击
最后一层 Vision-coordinate 回退是真正的杀手功能——它能从被遮罩、浮动菜单、或高度动态的 UI 中精确找到目标元素。这是传统选择器策略无法做到的。
完整的三层架构
Catcher 基于 Electron + Playwright 构建,分三层:
- Renderer(React) — 测试编辑器、运行面板、设置页面
- Main process(Electron) — 包含 runner(执行引擎)、snapshot(DOM 快照采集)、actions(动作执行)、llm(多 Provider 客户端)、storage(本地存储)等模块
- Playwright(Chromium) — 实际的浏览器引擎
每一步的执行流程是:Snapshot → Heuristic match → Fast path(跳过 LLM) → LLM plan → Execute → Assert,全部运行在你的本地机器上。
认证 Profile 与会话持久化
对于需要登录的网站,Catcher 支持”Auth Profiles”——通过真实浏览器窗口登录一次,Session 会被持久化保存。每个测试可以绑定独立的 Profile,Run-all 模式下自动复用。
横向对比
| 特性 | Catcher | SaaS AI 测试工具(如 Testim、Mabl) | Playwright 纯代码 |
|---|---|---|---|
| 数据驻留 | 本地 | 云端 | 本地 |
| 测试编写方式 | 自然语言 | 自然语言 + 录制 | 代码(JavaScript/TypeScript) |
| BYOK | ✅ 支持 | ❌ | N/A |
| 费用 | 免费(MIT) | $50-500+/月 | 免费 |
| Vision 回退 | ✅ 渐进式 4 层 | 有限 | 需要自行实现 |
| 离线可用 | ✅ | ❌ | ✅ |
| 选择器复杂度 | 低(自然语言描述) | 中 | 高 |
| CI 集成 | ❌(桌面 App) | ✅ | ✅ |
注意事项
- 未签名二进制:安装包未经过 Apple Developer 或 Windows 代码签名认证,首次启动时系统可能拦截。macOS 上右键 → 打开(而非双击),Windows 上点击”更多信息 → 仍要运行”
- 仅 Chromium:安装包内置 Chromium,不支持 Firefox 或 WebKit(开发模式下可以切换)
- Vision 质量取决于模型:预设模型均支持视觉能力,但如果使用自定义端点且模型没有视觉能力,会降级到纯文本启发式匹配
- 无 CI 集成:Catcher 当前是桌面应用,不提供 CI/CD 命令行运行模式,适合开发阶段的本地测试验证
总结
如果你在团队中使用 AI 编码工具开发 Web 应用,需要一个既保护数据隐私、又无需写复杂选择器的测试方案,Catcher 提供了一个两者兼顾的方案——自然语言描述测试步骤,Session 和浏览器在本地运行,Vision-coordinate 回退保证即使在复杂 UI 下测试也能稳定通过。
相关链接: