
1. 手动回归测试的重复劳动到底卡在哪里Chrome DevTools MCP 是一套把浏览器调试能力暴露给 AI 编程助手的协议服务Claude Code 通过它可以直接操作你本机已经打开的 Chrome 标签页点击按钮、填写表单、读取 DOM 文本、抓取 Network 请求、截图留证。它适合谁适合那些手里维护着「功能不复杂但每次发版都要手点一遍」的后台系统的开发者尤其是列表页、弹窗、筛选分页这类交互密集又容易漏测的模块。我负责的一个后台「用户管理」模块就是典型一张用户列表展示昵称、脱敏手机号、账号状态、所属学校、注册时间每行有「评分」和「删除」两个按钮顶部四个筛选条件底部分页每页 10 条共 20 条记录。功能听起来十分钟能测完但每次改完删除接口或筛选逻辑我都得重新走一遍点删除、确认弹窗、看列表刷新、核对总数点评分、关弹窗、再点下一个切筛选、翻页、再切回来。一轮五分钟改三次代码就重复三遍。真正让我下决心的是那次事故我改了删除接口的返回结构前端没正确处理删除后列表刷新了但总数没变。我手动试了三个用户都没发现上线后被运营报了出来。问题不在于我不认真而在于手动测试天然会抽样、会疲劳、会漏掉「已注销用户还能点评分」这种边界。Chrome DevTools MCP 加 Claude Code 的组合恰好能把这类机械验证变成一段可重放的自然语言指令。下面我从接入配置讲到四类实战用例全部基于本地开发环境你可以直接抄思路。2. 在 Claude Code 里接入 TaoToken 统一通道与 Chrome DevTools MCP先说清楚架构Claude Code 是执行大脑Chrome DevTools MCP 是它的「手」负责操作浏览器而模型请求需要一条稳定的 API 通道。TaoToken 在这里扮演的是统一 Key 与 API 入口的角色你不需要在多个模型供应商之间来回切换配置一个 Key 就能让 Claude Code 正常发起对话和工具调用。官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 。第一步安装 Chrome DevTools MCP 服务。在 Claude Code 环境里执行claude mcp add chrome-devtools -- npx chrome-devtools-mcplatest这条命令把 chrome-devtools 注册为一个 MCP serverClaude Code 启动时会通过 npx 拉起它。装完后输入/mcp确认工具已加载你应该能看到 chrome-devtools 相关的工具列表比如导航、点击、截图、读取页面内容等。第二步配置模型通道。Claude Code 读取的是环境变量或 settings 文件我习惯用 settings.json 管理路径在~/.claude/settings.json。下面这段是可直接复制的骨架把 Base URL 指向 TaoToken 的 API 地址Key 换成你在控制台生成的{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }三件套要写全Base URL 是https://taotoken.net/apiKey 是控制台里生成的sk-开头字符串Model ID 按你实际可用的填。如果你用的是 Codex 系的工具对应的是~/.codex/auth.json结构类似把 base_url 和 api_key 填进去即可。Cline 或 CC Switch 用户则在 MCP 配置面板里填同样的三件套Base URL、Key、Model ID 一个都不能少否则会出现 401 或模型找不到的报错。第三步确认 Chrome 以调试模式启动。Chrome DevTools MCP 需要连接一个开启了远程调试端口的 Chrome 实例。最省事的做法是让它自己拉起但如果你想复用已经登录了后台账号的浏览器就手动启动# macOS 示例Windows 换成对应的 chrome.exe 路径 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ --remote-debugging-port9222 \ --user-data-dir/tmp/chrome-debug-profile用独立的 user-data-dir 是为了不污染你日常的浏览器配置同时保留登录态。启动后访问http://localhost:9222/json/version能看到版本信息就说明调试端口通了。到这里前置工作就完成了。你可以在 Claude Code 里输入一句「列出当前打开的浏览器标签页」来验证 MCP 是否真的连上了。如果它返回了标签页标题和 URL说明链路打通可以进入实战。3. 可复制的 MCP 配置骨架与后台测试指令模板配置写对只是第一步真正决定效率的是指令怎么写。我把自己的配置和指令模板整理成可复制的形式你按项目改路径和字段名即可。先看完整的 MCP 配置。Claude Code 的 MCP 注册除了命令行方式也可以写进项目级的.mcp.json方便团队共享{ mcpServers: { chrome-devtools: { command: npx, args: [chrome-devtools-mcplatest], env: { CHROME_DEBUG_PORT: 9222 } } } }配合前面的~/.claude/settings.json模型通道配置整个链路就是Claude Code 用 TaoToken 的 Key 发起模型请求模型决定调用 chrome-devtools 的哪个工具MCP server 把动作翻译成 CDP 协议命令发给 ChromeChrome 执行后把结果回传。你看到的是一次自然语言对话底层是一串真实的浏览器操作。接下来是删除功能的回归指令模板。注意我在指令里写死了预期行为这是让 AI 能判断 PASS/FAIL 的关键使用 Chrome DevTools MCP 打开 http://localhost:3000/users。 对「删除」功能执行以下用例 1. 点击第一行用户昵称「芝士少女」的「删除」按钮在确认框中点「取消」 验证该行仍然存在列表无变化。 2. 再次点同一行「删除」点「确认」等待列表刷新 验证「芝士少女」行消失总记录数从 20 变为 19。 3. 筛选「账号状态 已注销」删除第一条 验证该状态下记录数减 1。 4. 在删除请求发出前通过 DevTools 把 Network 设为 offline 点删除并确认抓取页面出现的错误提示文案。 每个步骤后截图最后输出 PASS/FAIL 表格。评分弹窗的数据一致性指令重点是遍历和字段校验使用 Chrome DevTools MCP 遍历用户列表当前页所有用户共 10 条。 对每个用户 1. 点击「评分」按钮。 2. 等待评分弹窗出现等待 class 含 modal 的元素可见 抓取弹窗文本至少包含「综合评分」的值。 3. 记录该用户账号状态正常/已注销。 4. 关闭弹窗。 5. 若状态为「已注销」但弹窗显示了评分数据标记 FAIL。 输出汇总表昵称 | 状态 | 综合评分值 | 弹窗是否正常 | 是否符合预期。筛选加分页的指令我要求它同时抓 Network 请求参数这样后端 SQL 写错 join 条件也能被发现使用 Chrome DevTools MCP 对用户管理页执行筛选分页回归 1. 所属学校北京大学查询记录用户数翻到第二页 检查第二页用户学校是否仍为北京大学。 2. 账号状态已注销查询验证所有行状态列都是「已注销」。 3. 组合学校清华大学 状态正常查询验证每条数据都符合。 4. 昵称输入不存在的字符串 xxxx查询列表应显示「暂无数据」。 5. 连续切换先北京大学查询再复旦大学查询验证数据正确。 每个场景截图并从 Network 抓取查询接口请求参数。批量造数据的指令用统一前缀方便事后清理使用 Chrome DevTools MCP 在用户管理后台创建 30 个测试用户 昵称 test_user_01 到 test_user_30手机号 18800000001 到 18800000030 学校从 [北京大学, 清华大学, 复旦大学, 上海交通大学, 浙江大学] 随机选 前 20 个状态「正常」后 10 个「已注销」注册时间填当前日期。 每创建一个等待列表刷新并截图确认。重复则跳过并记录。 最后输出成功/失败统计。这些模板的共同点是给出明确的 URL、明确的元素定位方式、明确的预期结果、明确要求截图和汇总表。你越具体AI 的执行越稳定返工越少。4. 验证请求与成功结果一次从手动到 AI 驱动的对比配置和指令都齐了怎么确认它真的在工作我建议先跑一个最小验证再跑完整用例。最小验证在 Claude Code 里输入「用 Chrome DevTools MCP 打开 http://localhost:3000/users截图并告诉我页面标题和列表第一行的昵称」。如果返回的截图里能看到你的后台页面标题和昵称也对得上说明 MCP 连接、模型通道、浏览器调试端口三者全部正常。这一步能排掉大部分环境问题。然后跑删除功能的四个用例。我实测下来四个场景不到 2 分钟跑完而手动一轮要 5 分钟。更关键的是它发现了一个我从来没注意到的细节点「取消删除」后列表会闪一下再恢复。最终状态是对的但用户体验不好。这个闪烁手动测试时肉眼根本捕捉不到AI 通过对比操作前后的 DOM 快照发现了。评分遍历的效果更明显。手动点 10 个评分要 3 分钟AI 跑完 40 秒。它发现一个「已注销」用户的评分弹窗仍然正常显示数据违反了产品需求。要不是它老老实实遍历了每一个我根本不会去点那个已注销用户的评分按钮。筛选加分页的回归5 个核心场景加截图加请求参数汇总一共 6 分钟。有一次场景 3清华正常查询后第二页混进了一个北京大学的用户是后端 SQL 的 join 条件写错了。这个 bug 如果靠手动抽样很可能带着上线。批量造 30 个用户用了 8 分钟主要是 UI 操作加等待后端响应。造完之后测分页边界和筛选性能就方便多了测试用户统一带test_user_前缀事后一条 SQL 就能删干净。把数据摆在一起看任务手工耗时AI 耗时发现过的问题删除功能回归4 场景5 分钟1.5 分钟取消删除时列表闪烁遍历当前页 10 个用户评分3 分钟40 秒已注销用户仍显示评分筛选分页核心场景5 个15 分钟6 分钟组合筛选后端 SQL 漏条件批量生成 30 个测试用户20 分钟8 分钟无每周发版前至少省下 1 小时而且每次回归都能一模一样地重放不再依赖我当天的手感和注意力。5. 本篇常见报错排查401、local proxy failed、reading choices、OAuth接入过程中我踩过的坑基本集中在四类报错逐个说清楚。401 Unauthorized。这是最常见的一个通常出现在模型请求阶段。原因无非三种Key 填错、Base URL 写错、或者 Key 已失效。检查~/.claude/settings.json里的ANTHROPIC_BASE_URL是不是https://taotoken.net/api注意不要多加斜杠或路径ANTHROPIC_AUTH_TOKEN是不是完整的sk-开头字符串。如果用的是 Codex 的auth.json确认字段名是api_key而不是token。改完配置后重启 Claude Code环境变量不会热加载。local proxy failed。这个报错说明 Claude Code 尝试走本地代理但连不上。先确认你没有多余的代理环境变量残留比如HTTP_PROXY、HTTPS_PROXY。如果你确实需要走本地网络配置确保代理进程在运行且端口正确。多数情况下把 Base URL 直接指向 TaoToken 的 API 地址就能绕过这个问题不需要额外代理层。reading choices 相关报错。这类错误通常出现在模型返回结构不符合预期时比如返回体里没有choices字段。原因可能是 Base URL 指向了一个不兼容 OpenAI 格式的端点或者 Model ID 填了一个该通道不支持的模型。解决办法是把 Model ID 换成你账号下确认可用的型号并确认 Base URL 是https://taotoken.net/api这个统一入口而不是某个具体模型的专用路径。OAuth 相关报错。如果你在 Claude Code 里看到 OAuth token 过期或授权失败的提示说明它还在尝试用官方登录态而不是你配置的 Key。检查是不是同时存在官方登录凭证和自定义 Key两者冲突时会优先走 OAuth。清理掉旧的登录缓存确保ANTHROPIC_AUTH_TOKEN生效即可。还有一个不算报错但很烦的问题AI 操作太快弹窗还没出现就去点击导致找不到元素。解决办法是在指令里显式加等待条件比如「等待 class 含 modal 的元素可见后再抓取内容」。Chrome DevTools MCP 支持等待元素出现把这句话写进指令稳定性会大幅提升。最后一条铁律永远不在生产环境跑这些自动化。所有用例都针对本地开发数据库测试用户带test_前缀跑完即清理。AI 执行速度很快一旦指向生产库误删误改的后果也是成倍的。6. 把重复点击交给 AI从一句指令开始如果你也维护着一个看似简单但点起来很烦的后台模块我的建议是从最痛的那一个点开始。先让 AI 只测「删除功能」跑稳定了再加「评分遍历」和「筛选分页」。逐步扩大范围容易控制也容易定位问题。指令里一定要给出明确的预期行为。不要说「测试删除」要说「删除后该行消失总记录数减 1」。AI 有了预期才能判断 PASS/FAIL否则它只能告诉你「我点了按钮」这对回归测试没有意义。截图是最好的测试证据。要求每个关键步骤后截图跑完后快速浏览一遍大部分场景是否正常一眼就能看出来。遇到时序问题就用等待条件别让 AI 抢跑。想开始的话先去控制台生成一个 Key接入文档里有完整的配置说明验证模型是否通可以直接在模型对话里发一句话试试如果你打算长期把编码和 Agent 任务都交给它Coding Plan 会更划算。把 Chrome DevTools MCP 装上从一句「帮我测一下删除功能」开始你会发现那些每周重复两小时的点击真的可以交出去。