我把 OpenClaw 从聊天工具改造成测试工作流助理:一次完整实操复盘

发布时间:2026/10/2 23:33:56
我把 OpenClaw 从聊天工具改造成测试工作流助理:一次完整实操复盘 1. 为什么我把 OpenClaw 从聊天窗口搬进测试工作流OpenClaw 是一个支持本地工作区、AGENTS.md 规则文件和 Skill 扩展的 Agent 运行环境能读取你项目目录里的说明文件按你定义的流程执行任务。它适合谁适合那些已经不满足于“让 AI 随手写几条用例”而是想把需求评审、测试点设计、用例生成和自检串成一条可复用流水线的测试工程师。我最初也只是拿它当聊天工具用问一句“帮我根据这个需求生成测试用例”它确实能吐出一堆看起来像模像样的东西。但问题很快就暴露了需求里没写清楚的地方它会自己“补全”。比如 PRD 只写了“金额大于 20000 元需财务复审”它直接推断出“部门负责人 财务复审”两层链路还把“财务复审通过后流程结束”写进了预期结果。这些推断单看都合理可 PRD 没写就不该进正式用例。所以我决定做一次完整改造建测试工作区、写 AGENTS.md、搭 Prompt 库、把 endpoint 切到 TaoToken 统一通道最后拆出 3 个 Skill。整个过程跑下来最大的感受是——OpenClaw 的价值不在于一次性生成最终用例而在于帮你完成一套可控、可检查、可沉淀的测试分析流程。下面我把每一步的配置和踩过的坑都摊开讲。2. 前置准备工作区目录与 TaoToken 统一 Key 通道配置在动手写规则之前先把两件事准备好一个结构清晰的工作区以及一条稳定的模型调用通道。工作区决定 OpenClaw 能不能“记住”你的规则通道决定它能不能稳定跑起来。先建目录。我用的结构是这样的mkdir -p ~/openclaw-sqa-lab/{prompts,rules,templates,examples,outputs,skills} cd ~/openclaw-sqa-lab各目录职责如下目录用途AGENTS.md测试助理工作说明Agent 的“地图”prompts/固定 Prompt每个阶段一个文件rules/测试规则、边界约定templates/输出模板保证格式统一examples/示例需求用于回归验证outputs/OpenClaw 每一步的输出落盘skills/后续 Skill 草案目录建好后配置模型调用通道。我这次把 endpoint 统一改到 TaoToken好处是 Key 和 Base URL 只维护一份后面 Claude Code、Cline、Codex 都能复用同一套凭证。先到控制台创建 API Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentopenclaw_sqa_labutm_campaignrewrite拿到 Key 之后在 OpenClaw 的模型配置里填入三件套。不同版本字段名略有差异但核心就这三个{ base_url: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, model_id: claude-sonnet-4-20250514 }这里要提醒一句Base URL 填https://taotoken.net/api不要带任何多余路径。Model ID 按你实际要用的模型填我测试阶段用的是 Claude 系列长上下文对读 PRD 比较友好。配置完成后先别急着跑完整流程用一条最小请求验证通道是否通curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: 回复 OK 两个字母}] }返回里能看到choices字段且内容为 OK说明通道没问题。如果这一步就报错先别往下走直接跳到第 5 节排障。通道通了再回到工作区写 AGENTS.md。3. 可复制配置AGENTS.md、Prompt 库与 Skill 定义片段这一节是整篇的核心所有片段都可以直接复制到你的工作区里改。先说 AGENTS.md。它的定位是“地图”而不是百科全书——告诉 Agent 去哪找规则、按什么流程走、什么不能做而不是把所有细节塞进去。# OpenClaw 测试助理工作说明 你是我的测试助理帮助我完成需求分析、需求评审问题生成、测试点设计、 测试用例评审、测试风险识别和测试报告整理。 ## 工作原则 1. 不要编造需求中没有的规则。 2. 不明确内容必须标记为“待确认”。 3. 生成正式测试用例前必须先完成需求依据核对。 4. 测试用例步骤必须可执行预期结果必须可验证。 5. 不要把“待确认项”写成确定性测试用例。 6. 不要把“流程结束”“终审”“字段取值”等未确认结论写入正式用例。 7. 多端测试不要简单复制粘贴要先判断是否需要收敛。 8. 涉及写入、发送、删除、修改外部系统等动作必须先请求用户确认。 ## 工作流程 需求评审 - 测试点设计 - 测试点收敛 - 可入库筛选 - 正式用例生成 - 用例自检 ## 规则与模板位置 - 测试规则rules/ - 输出模板templates/ - 示例需求examples/ - 每步输出outputs/接着是 Prompt 库。我把整套流程拆成 6 个 Prompt每个文件只做一件事prompts/ ├── 01-requirement-review.md ├── 02-test-point-design.md ├── 03-test-point-scope.md ├── 04-case-eligibility.md ├── 05-formal-case-generation.md └── 06-case-self-check.md以01-requirement-review.md为例内容控制在几行读取 examples/ 下的 PRD输出需求评审问题清单。 按“业务规则 / 状态流转 / 审批路由 / 数据兼容 / 数据导出 / 多端 / 待确认功能”分类。 每个问题标注问题描述、影响范围、是否阻塞用例生成。 不要生成测试用例。05-formal-case-generation.md则强调约束只基于 outputs/03-test-point-scope.md 中标记为“核心已确认”的测试点生成用例。 每条用例包含编号、标题、前置条件、步骤、预期结果。 预期结果只能写 PRD 明确的内容推断内容一律不写。最后是 Skill 定义。我一开始想做一个大 Skill 包住全流程结果输出太长、Dashboard 出现过截断人工纠偏点也不清晰。后来拆成 3 个name: sqa-prd-review description: 需求评审问题生成与收敛 inputs: - prd_file outputs: - review_questions - review_questions_scopedname: sqa-test-design description: 测试点设计、收敛与可入库筛选 inputs: - review_questions_scoped outputs: - test_points - test_points_scoped - case_eligibilityname: sqa-test-case-gen description: 正式用例生成、自检与修正 inputs: - case_eligibility outputs: - formal_cases - self_check_report - final_cases三个 Skill 各管一段用户可以从任意阶段切入维护成本也低。配置写完后把examples/里放一份示例 PRD我用的是报销审批规则包含金额分档、状态流转、撤回驳回、多端影响和一条“批量导入待确认”。这份 PRD 看起来简单但边界和待确认项足够多很适合验证 Agent 会不会乱推断。4. 验证请求从 PRD 到 15 条正式用例的完整跑通过程配置就绪后按流程跑一遍。第一步让 OpenClaw 读 PRD 生成评审问题它输出了 23 个问题覆盖业务规则、状态流转、审批路由、数据兼容、导出、多端和待确认功能。这一步的价值比直接生成用例大得多——它把 PRD 里没写清楚的地方快速暴露了出来。第二步做问题收敛。我让它把 23 个问题分成“核心必须确认 / 建议确认 / 扩展风险”三档。这里出现了第一次人工纠偏它把“金额上限”放进核心必须确认但 PRD 已经用≤5000、5000金额≤20000、20000明确了边界归属主流程不依赖更高上限所以我把它降级为建议确认。同时它把 5000.00 和 20000.00 临界值放到扩展风险我重新拉回核心金额边界测试点。第三步生成测试点它输出 52 个但出现三个典型问题。一是默认了完整审批链把“20000 需财务复审”推断成“部门负责人 财务复审”两层我纠偏为“只验证包含财务复审节点不假设完整链路”。二是默认了导出字段PRD 只写“导出受影响”它却推断出审批状态、审批人、审批时间我纠偏为“只做基础回归文件可生成、可打开、记录数量一致”。三是把“审批记录是否保留”当成可测试发现但没有产品定义时测试只能观察现象、不能判断对错我标记为待确认。第四步收敛测试点最终分成核心已确认 10 个、核心待确认 14 个、扩展风险 9 个合计 33 个。第五步做可入库筛选8 个可直接入库2 个需限制范围PC 和 H5其余进入待确认或扩展风险。第六步生成正式用例经过自检和修正最终保留 15 条覆盖金额路由、状态流转、权限、PC/H5 回归和导出。自检环节发现了 3 个问题H5 用例写了“状态展示与 PC 端一致”但 PRD 未明确两端一致改为“状态正确展示为审批中、草稿、已驳回”PC 用例写了“页面跳转”PRD 未定义交互方式改为“提交后状态展示为审批中”PC 驳回用例写了“查看驳回信息展示”PRD 未定义字段改为“查看状态是否为已驳回”。最终判定为“修改后可入库”。举一条高金额用例看预期有多克制TC-005 20000元报销-审批链包含财务复审节点 预期提交成功状态为审批中财务复审人员待办中存在该报销单 不假设完整审批链。它没写“部门负责人 财务复审”也没写“财务复审通过后流程结束”。这就是前面纠偏的价值。整个流程跑通后你可以用模型对话页面单独验证某一步的输出质量https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentopenclaw_sqa_labutm_campaignrewrite5. 本篇常见错排查401、local proxy failed 与 choices 读取失败跑这套流程时我踩过的坑基本集中在通道和配置上。下面按真实报错对照排查。401 Unauthorized。最常见的原因是 Key 没填对或带了多余空格。检查api_key字段是否以sk-开头、有没有换行符。如果 Key 是从控制台复制的注意别把前后引号也复制进去。还有一种情况是 Base URL 写成了带路径的形式比如https://taotoken.net/api/v1正确写法是https://taotoken.net/api版本路径由 SDK 自己拼。local proxy failed / connection refused。这个报错通常出现在你本地配了转发但转发进程没起来或者端口被占用。先确认没有残留的本地转发进程在跑然后直接用 curl 打 TaoToken 的 endpoint 验证网络是否通。如果 curl 能通但 OpenClaw 报这个错检查 OpenClaw 的模型配置里是不是还残留着旧的本地地址。reading choices 失败 / choices 字段为空。这多半是请求体格式不对比如messages写成了字符串而不是数组或者model字段填了一个不存在的 Model ID。先用第 2 节那条最小 curl 请求验证返回里有choices就说明格式没问题。如果 curl 正常但 OpenClaw 报错检查它内部拼的请求体是不是多包了一层。OAuth 相关报错。如果你用的是 Claude Code 或 Codex 这类带 OAuth 流程的工具报 OAuth 错误通常是因为凭证过期或回调地址不匹配。这时候不要反复重试直接改用 API Key 方式接入把 Base URL、Key、Model ID 三件套填全。CC Switch、Cline MCP、Codex 的auth.json都是同样的逻辑——三件套缺一不可{ base_url: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, model_id: claude-sonnet-4-20250514 }输出截断。如果 Skill 输出到一半断了先看是不是单个 Skill 太重。我最初把全流程塞进一个 SkillDashboard 直接截断。拆成 3 个之后就没再出现。如果拆分后还截断检查max_tokens是不是设得太小。排障时如果拿不准是通道问题还是配置问题可以先到接入文档对照字段说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentopenclaw_sqa_labutm_campaignrewrite6. 把通道固定下来长期跑测试工作流的接入建议这套流程跑通之后我把它固定成了日常用法。需求评审阶段单独跑sqa-prd-review测试设计阶段跑sqa-test-design用例生成和自检跑sqa-test-case-gen。每个阶段的输出都落盘到outputs/下次回归时可以直接对比。如果你也要长期跑建议把 Key 和 Base URL 统一维护在 TaoToken 通道上这样 Claude Code、Cline、Codex 都能复用同一套凭证不用每个工具单独配一遍。需要长期编码或跑 Agent 任务的话Coding Plan 比按量调用更省心https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentopenclaw_sqa_labutm_campaignrewrite最后说一个我自己的习惯每次改完 AGENTS.md 或 Prompt先拿examples/里的示例 PRD 跑一遍回归确认输出没有退化再上真实需求。这样能挡住大部分“改了一处、崩了另一处”的问题。通道和规则都稳定之后OpenClaw 才真正从聊天工具变成了测试工作流助理。