尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Claude Code + Skills 自动生成标准测试用例与批量输出实践

Claude Code + Skills 自动生成标准测试用例与批量输出实践 测试用例是研发流程里最典型的“高重复、低创造性”工作正好是 AI 能稳定发挥的领域。这次我们来看一个组合方案Claude Code 作为命令行 AI Agent配合自定义 Skills 技能包自动生成标准格式的测试用例并且支持批量产出。先说结论这个方案不依赖图形界面不需要额外显卡装好 Node.js 和 Claude Code 就能跑Skills 的作用是给 AI 定义“测试用例该怎么写、按什么格式输出、覆盖哪些维度”从而解决通用聊天工具生成内容格式散、维度乱、不可直接复用的问题。配置好技能后可以一次输入多个需求或模块批量输出规格统一的测试用例也能把生成结果导出为 Markdown 表格或 JSON方便接入测试管理平台。这篇文章会按“环境准备 - 安装部署 - Skills 配置 - 功能测试 - 批量任务 - 接口集成 - 性能观察 - 问题排查”的顺序完整演示。如果你关心 AI 生成测试用例的实际效果、格式可控性和批量能力这篇可以直接收藏。1. Claude Code Skills 核心能力速览能力项说明项目类型命令行 AI 编程助手 自定义技能Skills主要功能根据需求描述、接口文档、代码逻辑自动生成标准测试用例输出格式Markdown 表格、JSON、TXT 等由 Skills 模板决定批量能力支持多文件、多需求批量生成可通过脚本循环调用硬件门槛无显卡要求普通的开发机或 CI 服务器均可运行启动方式命令行启动claude交互式会话或-p非交互模式接口能力支持 API 方式调用可接入自研测试平台或内部工具链依赖环境Node.js、Claude Code 客户端、Anthropic API Key 或兼容服务本地数据项目配置和技能文件存放在.claude/skills/目录便于版本管理适合场景功能测试用例编写、接口测试用例生成、回归用例补充、测试计划初稿从能力边界来看Claude Code 本身是通用型 AI AgentSkills 的价值是把“通用能力”收敛成“专业流程”。配置好测试用例技能后AI 会按固定的分析维度生成用例而不是自由发挥。2. 适用场景与使用边界2.1 适合谁用这个方案最适合以下四类角色测试工程师日常编写功能测试用例、接口测试用例、回归测试用例需要快速产出初稿再做人工校准。研发工程师提交代码后想快速补齐影响面相关的测试点或者为自研工具生成冒烟测试用例。测试组长 / 质量负责人需要统一团队的测试用例格式通过 Skills 定义标准模板让 AI 按模板批量输出。自动化测试平台开发者需要将 AI 生成的用例接入到内部平台JSON 格式输出可以减少二次解析成本。2.2 能解决什么问题用例格式不统一每个测试同学写出来的字段、优先级标注方式都不一样Skills 可以强制统一。需求覆盖不全AI 可以基于需求描述拆解正常流程、异常流程、边界条件、权限场景。批量产出慢一个模块几十条用例人工编写耗时明显AI 初稿 人工校审效率更高。草稿无法复用使用 JSON 结构输出后可以直接转成测试管理工具可导入的数据。2.3 不适合什么场景对 AI 生成内容零容忍、必须全人工编写的合规场景。需要结合具体业务数据库、真实账号、支付环境才能设计用例的深度集成测试。涉及敏感业务数据的需求描述直接把密钥、手机号、身份证号等内容贴给 AI 存在泄露风险。2.4 合规与安全边界使用 AI 生成测试用例时必须注意需求文档、接口文档、源码片段中可能包含商业敏感信息提交给 AI 前要做脱敏处理。不要将生产环境数据库连接串、密码、Token 写入提示词或技能文件。AI 生成的用例不能直接视为已审核用例必须由测试人员进行业务评审。涉及用户隐私、支付、权限控制的功能AI 建议的用例只能作为参考最终覆盖情况需要结合业务规则确认。3. 环境准备与前置条件3.1 操作系统Claude Code 官方支持 macOS、Linux、Windows Windows 上建议使用 PowerShell 或 WSL 。如果你不确定自己的系统环境可以先在命令行执行node -v确认 Node.js 是否可用。3.2 Node.jsClaude Code 通过 npm 安装需要本机有 Node.js 环境。建议使用 Node.js 18 或更高版本但具体要求以官方文档为准。没有 Node.js 的机器需要先安装 Node.js 和 npm 包管理器。3.3 API Key 或兼容服务使用 Claude Code 需要 Anthropic API Key或者接入与 Claude 兼容的大模型服务。如果使用第三方兼容服务需要在环境变量或配置文件中指定接口地址和模型名称具体字段名以对应服务说明为准。3.4 版本管理工具建议安装 Git用于管理 Skills 配置和生成的测试用例文件。把.claude/skills/目录纳入版本库可以让团队共享同一套测试用例生成规范。3.5 磁盘与网络Claude Code 是命令行工具本地数据量很小几十 MB 到几百 MB 即可不涉及模型权重文件下载。需要保证网络能正常访问接口服务。3.6 通用环境检查清单# 检查 Node.js 版本 node -v # 检查 npm 版本 npm -v # 检查 Git 版本 git --version如果以上命令返回正常的版本号说明基础环境就绪。4. 安装部署与启动方式4.1 安装 Claude Code使用 npm 全局安装 Claude Code命令如下npm install -g anthropic-ai/claude-code安装完成后验证版本claude --version如果安装顺利命令行会输出版本号。如果提示找不到命令可能需要检查 npm 全局安装路径是否在系统 PATH 中。4.2 登录或配置 API Key第一次运行claude时客户端会引导登录。也可以通过环境变量方式配置 API Key具体方法根据官方文档操作。一个通用的环境变量配置模板如下# 设置 API Key请替换为实际值 export ANTHROPIC_API_KEYyour-api-key不同系统配置方式不同。macOS / Linux 在~/.zshrc或~/.bashrc中写入上面的 exportWindows PowerShell 使用$env:ANTHROPIC_API_KEYyour-api-key4.3 初始化项目目录建议为测试用例生成单独建一个工作目录避免与业务代码目录混在一起。例如mkdir ai-testcase-generator cd ai-testcase-generator # 初始化 Git 仓库便于管理 Skills 配置 git init4.4 创建 Skills 目录在项目根目录下创建 Skills 标准目录结构# 创建 skills 目录 mkdir -p .claude/skills # 创建测试用例生成技能目录 mkdir -p .claude/skills/testcase-generatorSkills 的核心文件是SKILL.md后续会在这个文件里定义测试用例生成的完整流程和输出格式。4.5 启动 Claude Code交互式启动claude非交互式执行单条任务claude -p 请帮我把下面这段需求转成测试用例...启动后如果能看到命令行交互界面说明基本部署完成。接下来重点配置 Skills。5. Skills 配置与测试用例生成实践5.1 Skills 是什么Skills 是 Claude Code 的自定义能力扩展。一个 Skill 就是一个带SKILL.md文件的目录Claude Code 会根据目录名和SKILL.md中的描述在合适的场景下调用这个技能。对于测试用例生成场景Skills 可以做三件事定义输入格式需要用户提供什么信息比如需求描述、接口路径、字段约束。定义分析流程AI 应该先拆解需求再识别业务规则再补充异常分支。定义输出模板用例编号、模块、优先级、前置条件、测试步骤、预期结果。5.2 编写测试用例生成 Skill新建文件.claude/skills/testcase-generator/SKILL.md--- name: testcase-generator description: 根据需求描述、接口文档或功能说明生成标准格式测试用例。当用户要求生成测试用例、测试点、测试脚本时使用。 --- # 测试用例生成技能 你是一名资深测试工程师负责把需求拆解为可执行的标准测试用例。 ## 输入要求 用户需要提供以下至少一项信息 - 功能需求描述 - 接口路径与参数说明 - 业务规则和约束条件 - 源码片段 如果用户提供的信息不够完整先列出缺失的关键项再继续。 ## 分析流程 1. 拆解需求中的功能点 2. 识别正常流程、异常流程、边界条件和权限场景 3. 根据业务规则补充隐含测试点 4. 为每个测试点编写测试步骤和预期结果 ## 输出模板 按以下 Markdown 表格输出 | 用例编号 | 所属模块 | 用例标题 | 优先级 | 前置条件 | 测试步骤 | 预期结果 | | --- | --- | --- | --- | --- | --- | --- | | TC_模块名_001 | 模块名 | 用例标题 | P0/P1/P2 | 前置条件 | 1. xxx; 2. xxx | 预期结果 |保存文件后可以通过claude交互界面输入/skills查看技能是否被识别。如果识别成功testcase-generator会出现在技能列表中。5.3 生成第一批测试用例启动 Claude Codeclaude在交互界面输入请使用 testcase-generator 技能为下面的需求生成测试用例 用户登录功能用户输入手机号和密码点击登录。 - 手机号格式11 位数字以 1 开头。 - 密码长度8-20 位。 - 连续输错 5 次密码账号锁定 30 分钟。 - 登录成功后跳转首页。如果配置正确AI 会按 SKILL.md 中定义的表格结构输出用例而不是自由发挥。5.4 验证输出质量生成结果需要人工检查以下维度是否覆盖正常流程正确手机号和密码能登录。是否覆盖格式校验手机号不足 11 位、密码少于 8 位。是否覆盖边界值手机号 11 位正好满足、密码 20 位正好满足。是否覆盖锁定策略连续输错 5 次触发锁定、锁定到期后解除。是否覆盖权限和跳转登录成功进入首页。如果缺失某个维度可以补充提示例如“请补充手机号包含字母、密码包含中文等异常场景”。AI 生成用例不是一次完成而是逐步完善的过程。5.5 设置需求模板减少重复输入每次手工输入需求比较琐碎。可以在 Skills 目录下再放一个模板文件.claude/skills/testcase-generator/template.md# 需求标题 ## 功能描述 [在这里填写具体功能逻辑] ## 业务规则 1. [规则一] 2. [规则二] ## 涉及角色 - [角色一] - [角色二] ## 关联接口 - [接口路径和参数说明]这样每次生成用例时只需要把 template.md 复制到工作区并填充内容再把内容交给 Claude Code。模板化输入可以提升批量操作的稳定性。5.6 编写输出说明文档更好的做法是在 Skill 中增加“输出说明”的约束让 AI 判断用例覆盖程度。例如在 SKILL.md 中追加## 输出附加说明 生成表格后额外输出一段“覆盖分析” - 正常场景覆盖是/否 - 异常场景覆盖是/否 - 边界值覆盖是/否 - 权限场景覆盖是/否 - 未覆盖风险点列出可能需要人工确认的测试点通过这种方式AI 不只是在生成用例还在对自身输出做一次逻辑自检便于人工快速判断缺什么。6. 批量生成测试用例6.1 批量生成思路批量生成测试用例有两种常见方式方式一把多个需求写在同一份输入中让 AI 一次性分析并生成多组用例。方式二用脚本多次调用 Claude Code 非交互模式每个需求生成一个独立的用例文件。方式一适合需求数量少、内容长方式二适合需求数量多、需要逐个归档。6.2 使用非交互模式批量生成假设项目中有一个requirements/目录每个需求是一个 Markdown 文件可以通过 Shell 脚本循环调用#!/bin/bash # 批量生成测试用例示例按实际路径调整 REQ_DIR./requirements OUT_DIR./testcases mkdir -p $OUT_DIR for req_file in $REQ_DIR/*.md; do filename$(basename $req_file .md) output_file$OUT_DIR/${filename}_testcases.md echo 正在处理: $req_file claude -p 阅读需求文件 $req_file 的内容使用 testcase-generator 技能生成测试用例并将结果写入 $output_file echo 已生成: $output_file done注意实际使用时需要根据 Claude Code 当前版本的参数格式调整-p后面的指令。如果命令行工具支持直接读取文件路径也可以把需求文件作为提示词的一部分传入。6.3 将结果导出为 JSON如果后续要将用例导入测试管理平台建议在 SKILL.md 中增加 JSON 输出格式定义## JSON 输出格式 如果用户要求 JSON 格式按以下结构输出 { module: 模块名, testcases: [ { id: TC_模块_001, title: 用例标题, priority: P0, preconditions: 前置条件, steps: [步骤1, 步骤2], expected: 预期结果 } ] }生成后可以用 Python 脚本校验 JSON 是否合法import json import glob for path in glob.glob(./testcases/*.json): with open(path, r, encodingutf-8) as f: data json.load(f) print(f{path}: {len(data[testcases])} 条用例)# 运行校验脚本 python validate_cases.py6.4 批量任务失败重试批量脚本如果中途失败常见原因是单次任务内容过长或网络波动。建议在脚本中增加重试机制for i in 1 2 3 4 5; do claude -p 生成测试用例... if [ $? -eq 0 ]; then break fi echo 第 $i 次调用失败2秒后重试 sleep 2 done批量任务的日志也要保留方便排查哪个需求生成失败。7. 接口 API 与自动化集成7.1 Claude Code 的接口化能力Claude Code 的-p参数可以实现非交互式调用这在 CI/CD 场景中很有用。发布测试环境代码后可以自动触发一个脚本让 AI 生成与本次变更相关的测试用例。7.2 Python 调用示例如果希望把 AI 生成用例的能力封装成服务可以在 Python 中调用 Claude Code 命令或者直接调用底层 API。下面是一个基于命令行调用的示例import subprocess import json def generate_testcases(requirement_text: str) - str: prompt f 请使用 testcase-generator 技能为下面的需求生成标准测试用例表格 {requirement_text} result subprocess.run( [claude, -p, prompt], capture_outputTrue, textTrue, timeout300, encodingutf-8 ) if result.returncode ! 0: raise RuntimeError(fClaude Code 调用失败: {result.stderr}) return result.stdout调用示例requirement 用户通过邮箱验证码重新设置密码验证码有效期 5 分钟接口最多允许尝试 3 次。 case_text generate_testcases(requirement) print(case_text)7.3 将生成结果写入测试管理平台生成 Markdown 或 JSON 后可以继续调用测试管理平台的 OpenAPI 导入用例。这里不展开具体平台因为不同产品接口差异较大但只要生成阶段产出了规范的 JSON导入环节就只需要做字段映射。7.4 内网服务部署注意事项如果要把这套能力做成团队共享服务需要关注访问控制命令行工具或脚本不要在公网暴露建议只允许内网访问。API Key 管理不要把 Key 硬编码在仓库中使用环境变量或密钥管理服务。配额控制AI 接口调用有费用和速率限制批量任务建议加队列。8. 资源占用与性能观察8.1 本地资源占用Claude Code 是命令行客户端占用资源远低于本地大模型推理。普通开发机同时开几个终端窗口运行 Claude Code 不会对内存造成明显压力。运行期间可以关注内存占用通常只有几百 MB 级别的进程内存。网络用量每次生成任务都会把提示词和返回结果传输到模型服务。CPU本地不执行模型推理CPU 占用很低。不属于本地大模型场景所以不需要讨论显卡显存。8.2 影响生成速度的因素需求文本长度需求越长AI 分析时间越长。输出格式复杂度JSON 结构比纯文本表格耗时略高但差距不明显。网络延迟模型服务接口的响应速度是主要瓶颈。批量并发策略如果连续调用多个命令注意接口速率限制。8.3 如何降低成本和提升速度控制输入长度把无关背景信息从需求中删掉。使用模板需求模板可以减少 AI 理解成本。分批处理一次生成太多用例容易超出上下文限制或输出截断。结果缓存相同的需求不要重复生成按需求文件做缓存。9. 常见问题与排查方法问题现象可能原因排查方式解决方案claude 命令找不到npm 全局路径不在 PATH执行npm root -g查看路径把全局 bin 目录加入 PATH登录或鉴权失败API Key 无效或未配置检查环境变量ANTHROPIC_API_KEY重新配置有效 KeySkills 无法被识别SKILL.md 目录位置不对检查.claude/skills/目录结构确保 SKILL.md 放在技能目录下技能描述不触发SKILL.md 的 description 描述不明确查看技能加载文档改写 description加入“测试用例”等触发词输出内容偏离模板技能约束不够强或上下文被覆盖检查输出是否满足模板要求在 SKILL.md 中强化“必须按模板输出”批量任务中途失败网络波动或接口限流查看脚本日志增加重试和失败记录生成内容不完整单次提示词太长超出上下文减少每次输入的需求量拆分需求文件分多次生成中文内容乱码终端编码问题检查终端字符集Windows 使用 UTF-8 编码运行结果无法导入平台输出 JSON 结构不符用 json.load 校验按目标平台字段调整 JSON 模板API 调用返回错误模型名称或接口地址不匹配查看返回错误码按服务文档调整配置如果遇到“Skills 不生效”最直接的排查路径是先确认当前目录是否在项目根目录下再确认.claude/skills/testcase-generator/SKILL.md文件是否存在最后在 Claude Code 中执行/skills查看技能列表。10. 最佳实践与使用建议10.1 从一个小模块开始验证不要第一天就批量生成全套用例。先选一个业务相对独立、规则清晰的模块配置好 Skill 后生成 20 到 30 条用例检查格式和覆盖度再逐步扩大到其他模块。10.2 将 Skills 配置纳入版本管理把.claude/目录提交到 Git让整个团队的测试用例生成规范保持同步。每次调整输出模板、分析流程都对应一次 code review。建议目录结构. ├── .claude │ └── skills │ └── testcase-generator │ ├── SKILL.md │ └── template.md ├── requirements │ ├── login.md │ └── register.md ├── testcases │ ├── login_testcases.md │ └── register_testcases.md └── scripts ├── batch_generate.sh └── validate_cases.py10.3 先小参数测试再放大规模初级自动化测试脚本建议先处理 1 到 3 个需求确认格式稳定后再投入全量批量任务。10.4 人工审核是必须环节AI 适合生成初稿但业务规则、异常分支、数据约束需要人工复核。建议在生成用例后安排测试人员做一次业务评审再把用例录入测试管理平台。10.5 关注敏感信息不要把生产环境的账号、手机号、身份证号、Token 直接放到需求描述中。建议先脱敏或使用测试专用的假数据。10.6 与现有测试流程结合AI 生成用例不是替代测试人员而是替代重复的格式整理和基础场景列举。最终目标是把“需求 - 用例初稿”这个阶段压缩到分钟级让人力集中在高风险的业务场景设计上。对我来说这套方案最值得尝试的点不是“让 AI 写用例”这个概念而是 Skills 能把 AI 的随机性约束成固定的、可复用的团队规范。你先用一个登录模块试跑看看生成的用例是否覆盖边界条件和异常流程如果输出能稳定落在提前设计的表格模板里再考虑批量铺开。最容易踩的坑是 Skills 配置后没有正确触发先在/skills中确认加载成功再砸时间调具体模板。后续可以根据需要扩展更多技能比如接口用例生成、编写自动化测试脚本、生成测试计划初稿用同一套目录结构和规范管理即可。
返回列表