首页 › Claude Code › QA 自动化
概览安装CLI 参考文档定价与限制Agent SDK技能与插件GitHub网页、桌面与 IDE模型错误是否开源?教程学生指南QA 自动化与 Cursor 对比与 Codex 和 OpenCode 对比子智能体钩子MCP生态系统VS CodeOpenRouter速率限制中文指南
最后更新:2026 年 11 月

如何使用 Claude Code 实现 QA 自动化

Claude Code 在 QA 工作中表现尤为出色,因为 QA 是一个它可以自行完成闭环的流程:编写测试、运行测试、读取失败信息、修复测试或代码,然后再次运行。本指南介绍实用配置——从生成第一个测试文件,到在每个拉取请求上进行无头运行。

TLDR

  • 在 CLAUDE.md 中提供测试运行命令,它就能编写、运行和修复测试,无需另行告知操作方法。
  • 最佳输入:规格说明、包含复现步骤的缺陷报告,或可供仿照的现有测试文件。
  • 无头模式: claude -p 替换为 --allowedTools 在 CI 中使用;GitHub Action 会在拉取请求上执行相同操作。
  • 端到端:Playwright MCP 服务器让它能够操控真实浏览器;请保持这些会话简短。

Claude Code 在 QA 工作流中能做什么

  • 按照项目现有的风格和框架,为模块生成单元测试。
  • 将缺陷报告转化为失败的回归测试,然后修复代码,直到测试通过。
  • 为现有测试套件补充缺失的边界情况(空输入、Unicode、超时、并发)。
  • 编写 Playwright 或 Cypress 端到端测试,并借助浏览器 MCP 服务器,在运行中的应用上执行这些测试。
  • 排查失败的 CI 运行:读取日志、查找原因、提出或应用修复。
  • 审查拉取请求中未经测试的路径,并发布发现的问题。

它无法决定哪些事情重要。它很乐意用没有任何有用断言的测试,将行覆盖率提升到 100%。输出质量取决于指令质量,因此下方的配置从记忆文件开始,而不是从提示词开始。

配置:告诉它如何运行测试

# CLAUDE.md
## Testing
- Unit tests: `npm test` (vitest). Files live next to the source as `*.test.ts`.
- E2E: `npx playwright test`, specs in `e2e/`. Needs the dev server: `npm run dev`.
- Always run the relevant test file after editing it. Do not mark a test `.skip` to make the suite pass.
- Prefer table-driven tests; one behaviour per `it()`; no snapshot tests for logic.

这段内容决定了智能体是靠猜测行事,还是像读过贡献指南的同事一样工作。加入你希望采用的断言风格,以及绝不希望它做的事情(模拟数据库、跳过测试、修改测试数据以匹配错误输出)。

根据规格说明或缺陷报告生成测试

> Read src/billing/prorate.ts. Write vitest tests covering the documented behaviour in
  docs/billing.md, including month boundaries, leap years and a zero-day period.
  Run them; if any fail, tell me whether the code or the doc is wrong before changing code.
> Bug #412: uploading a 0-byte file returns 500 instead of 400. Write a failing test that
  reproduces it, then fix the handler so the test passes. Do not touch other tests.

每个提示词的最后一句话都很重要。“告诉我是代码错了还是文档错了”,可以防止它悄悄改变行为,以匹配刚刚自行编写的测试;“不要改动其他测试”,可以避免一种常见失败模式:为了让测试通过而修改无关的断言。

运行与修复循环

要求它在编写测试后运行测试。它会读取失败输出、进行调整并重新运行——通常需要两三次迭代。留意权限提示:允许 Bash(npm test*) 和 Bash(npx playwright test*) 一次,并使用 /permissions 以免循环被打断,同时让破坏性命令保持每次询问。如果它在同一个测试上循环超过四五次,就停止它;该测试很可能在断言错误的内容,需要人工检查。

在 CI 中以无头模式运行

# generate regression tests for whatever changed, non-interactively
git diff --name-only origin/main...HEAD | grep -E 'src/.*\.ts$' > changed.txt
claude -p "For each file in changed.txt, add or extend tests for the changed behaviour. Run them." \
  --allowedTools "Read,Edit,Write,Bash(npm test*),Bash(git diff*)" \
  --max-turns 25 --output-format json > claude-qa.json

打印模式不会提出任何问题,因此它可能执行的所有操作都必须预先通过以下方式授权: --allowedTools,以及 --max-turns 限制循环次数。将 ANTHROPIC_BASE_URL=https://aiprimetech.io 和网关密钥设为 CI 密钥变量,运行费用就会从你的网关余额或无限量套餐中扣除。将结果提交到分支,让人工审查——不要自动合并生成的测试。

在每个拉取请求上运行:GitHub Action

当有人发表评论时,Claude Code GitHub Action 会运行相同的循环 @claude 在拉取请求中触发,或在创建时自动触发。在工作流中加入面向 QA 的指令——“检查此 PR 中未测试的分支,并为其添加测试”——即可在审阅者查看之前,对每个 PR 进行初步检查。GitHub 指南介绍了应用安装、工作流文件和费用。

使用 Playwright 进行端到端测试

有两种方式。不使用浏览器时,它会根据页面结构和你的描述编写 Playwright 测试用例,再由你运行。连接 Playwright MCP 服务器后(/mcp),它可以打开应用、点击并走完整个流程、读取 DOM,然后根据实际看到的内容编写测试——选择器会可靠得多,但会话也会更长。每个浏览器会话只处理一个流程,并在会话之间 /clear ;截图和 DOM 转储体积很大,而且每一轮都会重新发送。

降低 QA 运行成本

  • 使用 Sonnet 档位;生成测试很少需要 Opus。Haiku 档位足以用于日志问题分类。
  • 每次只让它处理一个模块或一个缺陷。“为整个仓库添加测试”是成本最高的提示。
  • /compact 在每个测试文件落地后执行;它读取过的失败日志已不再有用。
  • 在 CI 中,使用以下选项设置上限 --max-turns ,并且只针对已更改的文件运行。
  • 对于每天运行这些任务的团队,固定费率的不限量套餐可以彻底消除按 token 计费的顾虑。
计划时长价格
1 小时不限量1 小时$1
24 小时不限量24 小时$10
1 周不限量1 周$49
15 天不限量15 天$89

所有不限量套餐 →

先免费试用

新账户可获得 $5 免费 API 额度 使用优惠码 CLAUDECODE — 足够用 Sonnet 运行 Claude Code 一晚,之后可获得面值 7.69231 倍的额度。

export ANTHROPIC_BASE_URL=https://aiprimetech.io
export ANTHROPIC_API_KEY=your_key

使用优惠码 CLAUDECODE 创建账户

常见问题

Claude Code 能编写单元测试吗?

可以——如果 CLAUDE.md 说明了项目现有的框架和风格,它就会按这些要求编写。让它在编写后运行测试,以便自行修正错误。

Claude Code 能运行 Playwright 测试吗?

可以。它可以独立编写测试用例,连接 Playwright MCP 服务器后,还能操控真实浏览器来构建和验证测试。

Claude Code 适合 QA 自动化吗?

在生成测试、完成编写—运行—修复闭环,以及对 CI 失败进行分类排查方面,它非常适合。它不能替你决定哪些内容需要测试,而且生成的测试在合并前仍需人工审查。

如何在 CI 中运行 Claude Code 来进行测试?

使用 claude -p,并配置 --allowedTools 和 --max-turns,将网关或 Anthropic 凭据作为密钥保存,再将输出提交到分支供审查。GitHub Action 为拉取请求封装了同样的流程。

通过网关运行 Claude Code

相同的模型,两个环境变量,面值 7.69231 倍的额度,或固定费率不限量方案。 新账户:使用优惠码 CLAUDECODE 可获得 $5 免费 API 额度。

获取 API 密钥 查看不限量方案

AI Prime Tech 是独立的 API 网关,与 Anthropic 无关联,也未获得其认可或赞助。“Claude”和“Claude Code”是 Anthropic 的商标。此处介绍的 Claude Code 功能以撰写时 Anthropic 的公开文档为依据,且经常发生变化;本页面的价格和模型列表读取自此网关的实时设置。

更多 Claude Code 指南

Claude Code:完整指南如何安装 Claude CodeClaude Code CLI 文档:命令与参数Claude Code 定价与限制详解Claude Code SDK,现已更名为 Claude Agent SDKClaude Code 技能与插件在 GitHub 中使用 Claude Code:App、Action 和 @claudeClaude Code 有网页界面吗?网页、桌面与 IDE 版本详解Claude Code 使用哪个模型,以及如何更改Claude Code 错误及修复方法Claude Code 开源吗?Claude Code 教程:您的首次实际会话学生使用 Claude:Claude Code、API,以及教育优惠实际提供什么Claude Code 与 Cursor 对比:如何选择、何时使用,以及如何同时使用两者Claude Code、Codex 与 OpenCode:终端智能体对比Claude Code 子智能体:工作原理、定义方法与智能体团队Claude Code 钩子:以确定性方式控制智能体的行为Claude Code MCP:连接服务器、作用域、远程 MCP 与实际示例Claude Code 生态系统:路由器、框架、插件及收录它们的清单在 VS Code 中使用 Claude Code:扩展、终端方式与常见错误如何在 Claude Code 中使用 OpenRouter(以及何时不宜使用)Claude 速率限制错误:“API error: rate limit reached”的含义与解决方法Claude Code 怎么用:从安装到日常使用