원클릭으로
tcase-casegen-workflow
TCase 用例生成 spec 工作流。提供完整的5阶段测试用例生成流程:查询需求→需求分析→测试点设计→用例生成→同步到脑图。当 testbuddy-skill 检测到此技能包存在时自动使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
TCase 用例生成 spec 工作流。提供完整的5阶段测试用例生成流程:查询需求→需求分析→测试点设计→用例生成→同步到脑图。当 testbuddy-skill 检测到此技能包存在时自动使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
YottaDB 分布式数据库功能测试代码生成工具。当用户需要生成 YottaDB 测试代码、根据 UUID/文本用例/节点生成测试、编写 TSDB/MEMDB/SSDKV 等模块的功能测试时触发此技能。
腾讯云鼎实验室出品,Skill安全审查工具。对用户指定的skill.md文件及其配套的文档、程序、脚本等进行全面安全审计,确保引用安全
TCase 自动化测试代码生成技能。当用户需要生成测试代码、自动化测试、根据UUID/文本用例/节点生成测试时触发。支持 uuid、text_case、node、standard 四种模式。
ALB自动化测试用例代码生成工具。当用户需要为 ALB(Application Load Balancer)生成自动化测试用例、编写接口测试代码、根据 API 文档生成测试代码时触发此技能。支持通过关键词(ALB)自动拉取对应源码,严格遵循 DB 校验、接口联动、LD(nginx) 校验、数据清理(DB查询→delete接口→DB校验残留)等测试规范。支持 set 类、LD 类、listener 类等多种资源接口的测试代码生成。
CloudGame autotest code generator - 根据CloudGame项目的测试设计文档生成pytest自动化测试用例代码。当用户提供测试设计规范(通过UUID或直接描述)并需要将其转换为遵循项目约定的Python pytest测试用例时使用。支持多个模块(xhd、proxy、master、resource_svr、cgmanager、wx_video),并具有特定的命名规则、目录结构和测试框架。
文本测试用例生成技能包。任何有关于文本测试用例生成、文本测试用例框架生成、脑图用例生成、召回、需求分析等文本测试用例生成的相关问题,都可以使用此技能。
| name | tcase-casegen-workflow |
| description | TCase 用例生成 spec 工作流。提供完整的5阶段测试用例生成流程:查询需求→需求分析→测试点设计→用例生成→同步到脑图。当 testbuddy-skill 检测到此技能包存在时自动使用。 |
| enabled | true |
analyze、generate、生成节点、recall工具🚨 用户确认环节不可跳过(最高优先级规则)🚨
以下三个阶段的用户确认环节是强制性的、不可跳过的门禁检查点,无论任何情况都必须遵守:
严禁以下行为:
| 阶段 | 用户意图 | 触发关键词 | 输入节点类型 | 输出节点类型 |
|---|---|---|---|---|
| 阶段2 | 需求分析 | - | STORY/BUG | 分析文档 |
| 阶段3 | 测试点生成 | tpoint/testpoint/测试点 | STORY/BUG/FEATURE | TEST_POINT |
| 阶段4 | 用例生成 | case/用例 | TEST_POINT/SCENE/FEATURE | CASE |
| 阶段5 | 同步到脑图 | - | CASE | 脑图节点 |
使用工具能力:load_session、add_nodes(参见 tools/load_session.md、tools/add_nodes.md)
脚本支持的节点类型:STORY、BUG、FEATURE、SCENE、TEST_POINT、CASE(仅这 6 种,不支持 STEP/CONDITION/EXPECTED 等类型)
功能说明 整理用户当前需求详情(未明确需求详情时,查询当前需求详情)
重要说明
需求分析阶段功能说明 分析原始需求,提取关键点及待澄清问题;通过依次查询知识库补充信息
核心工作流程(必须严格遵循)
需求分析格式约束条件
需求分析格式(必须为markdown,且必须带有```)
<File name="/tmp/test_analysis.md" type="file" language="markdown">
## 原始需求
[原始需求详情]
## 需求要点
1. [要点详情1]
2. [要点详情2]
## 问题
1. [问题1]
[答案1]
1. [问题2]
[答案2]
</File>
约束条件:
测试点设计阶段重要说明:
职责:
核心工作流程(必须严格遵循):
/tmp/test_analysis.md内容,识别出测试模块及测试点信息测试点设计格式测试点识别策略: 正常流程测试点(必须覆盖):
异常&边界值测试点(根据需求复杂度和明确性决定是否包含): 仅在以下情况下才包含异常&边界值测试点:
专项验证测试点(根据需求文档的具体要求决定是否包含): 仅在需求文档中明确提及相关要求时才包含专项验证测试点:
测试点设计格式(必须为markdown,且必须带有```)
<File name="/tmp/test_design.md" type="file" language="markdown">
## 功能模块:[模块名称]
### 正常流程测试点:
- [编号]、[测试点名称]:[简要说明]
- [编号]、[测试点名称]:[简要说明]
### 异常&边界值测试点:(仅在需求文档明确涉及时才包含此部分)
- [编号]、[测试点名称]:[简要说明]
- [编号]、[测试点名称]:[简要说明]
### 专项验证测试点:(仅在需求文档明确提及相关要求时才包含此部分)
- [编号]、[测试点名称]:[简要说明]
- [编号]、[测试点名称]:[简要说明]
</File>
约束条件:
重要说明:
用例生成(对应 skill 能力矩阵:case/用例)/tmp/test_analysis.md及/tmp/test_design.md内容进行用例生成核心工作流程(必须严格遵循):
load_session 获取 design_uid 和 select_node.uid
python3 .codebuddy/skills/testbuddy-skill/scripts/load_session.py
测试用例格式格式重要原则:
设计原则:
⚠️ 格式与脚本兼容性说明(极其重要):
脚本 parse_structured_markdown 只解析 4 级 Markdown 标题(##~#####),不解析 ###### 和 #######。步骤和预期结果必须写在 CASE 节点内部,使用以下行内格式:
**前置条件:** 字段(单行)**执行步骤:** 后跟 - 步骤N:操作描述;预期结果:结果描述 格式(每步一行)**优先级:** 字段(单行)禁止使用 ###### 和 ####### 标题来表示步骤和预期,这些层级不会被脚本解析。
测试用例格式(必须为markdown,且必须带有```)
<File name="/tmp/test_cases.md" type="file" language="markdown">
## 模块1:[模块名称]
**PARENT_UID:** {从session获取的design_uid或select_node.uid}
**功能描述:** [模块功能说明]
### 测试场景1.1:[场景名称]
**PARENT_UID:** 模块1
**场景描述:** [详细场景描述]
#### 测试点1.1.1:[测试点名称]
**PARENT_UID:** 测试场景1.1
**描述:** [该测试点要验证什么]
##### 用例TC001:[用例标题]
**PARENT_UID:** 测试点1.1.1
**用例描述:** [详细的用例描述]
**优先级:** P0
**前置条件:** [执行前条件内容,如无填"无"]
**执行步骤:**
- 步骤1:[具体操作描述];预期结果:[预期结果描述]
- 步骤2:[具体操作描述];预期结果:[预期结果描述]
</File>
Markdown层级与节点类型映射(仅 4 级,与脚本一致):
## 模块名称 → FEATURE 节点### 场景名称 → SCENE 节点#### 测试点名称 → TEST_POINT 节点##### 用例名称 → CASE 节点(步骤和前置条件内嵌在 CASE 的 instance 字段中)PARENT_UID 引用规则:
PARENT_UID 用于在 Markdown 中表示逻辑父子关系。
design-3KzwSNVKnF)模块1)测试场景1.1)测试点1.1.1)⚠️ PARENT_UID 前缀必须与对应标题前缀完全一致。例如:
### 测试场景1.1:验证码功能,则子节点的 PARENT_UID 应写 测试场景1.1(不是 场景1.1)#### 测试点1.1.1:获取滑块验证码,则子节点的 PARENT_UID 应写 测试点1.1.1(不是 1.1.1)⚠️ 重要:脚本不会自动将中文名称引用转换为实际的节点 uid。Markdown 中的 PARENT_UID 中文引用(如 模块1、测试场景1.1)在脚本解析后会原样保留为字符串,不会被转换为 feature-XXX、scene-XXX 等真实 uid。因此在阶段5同步到脑图时,必须执行 PARENT_UID 引用解析步骤(详见阶段5步骤3)。
约束条件:
--- 分割线(会干扰脚本解析)阶段5:同步到脑图功能说明
使用工具 add_nodes 将生成的节点同步到 testbuddy 脑图
使用工具
load_session:加载会话参数(tools/load_session.md)add_nodes:添加节点到脑图(tools/add_nodes.md)核心工作流程(必须严格遵循)
加载会话参数 - 使用 load_session 工具获取 session 信息:
python3 .codebuddy/skills/testbuddy-skill/scripts/load_session.py
design_uid(如:design-eNS0Ghn7qW)token、namespace、session_id 等 MCP 渲染参数更新 test_cases.md 中模块的 PARENT_UID - 如果 load_session 返回的 design_uid 与 test_cases.md 中模块的 PARENT_UID 不同,必须先更新 test_cases.md 中所有模块的 PARENT_UID 为最新的 design_uid
校验节点格式(强制) - 执行校验命令:
python3 .codebuddy/skills/testbuddy-skill/scripts/validate_nodes.py <test_cases.md路径>
解析并替换 PARENT_UID 中文引用(强制) - 脚本 parse_structured_markdown 不会自动将 Markdown 中的中文 PARENT_UID 引用(如 模块1、测试场景1.1)转换为实际的节点 uid。必须在添加节点前执行以下步骤:
使用 Python 脚本加载解析后的节点数据,建立标题前缀到 uid 的映射,替换所有中文 PARENT_UID 引用为真实 uid,然后保存为 JSON 文件:
import json, sys, re
sys.path.insert(0, '.codebuddy/skills/testbuddy-skill/scripts')
from write_node_from_file import load_file_data
data, err = load_file_data('/tmp/test_cases.md')
if err:
print('Error:', err)
sys.exit(1)
# 建立标题前缀 -> uid 映射表
name_to_uid = {}
for n in data:
name = n.get('name', '')
# 提取冒号前的前缀(如 "模块1" from "模块1:认证授权")
for sep in [':', ':']:
if sep in name:
prefix = name.split(sep)[0].strip()
name_to_uid[prefix] = n['uid']
break
# 替换所有中文 PARENT_UID 引用为真实 uid
for n in data:
pu = n.get('parent_uid', '')
if pu and pu in name_to_uid:
n['parent_uid'] = name_to_uid[pu]
# 验证无未解析的引用
unresolved = [n for n in data if n.get('parent_uid', '').startswith(('模块', '测试', '用例'))]
if unresolved:
print(f'ERROR: {len(unresolved)} unresolved PARENT_UID references')
for u in unresolved:
print(f" {u['name']} -> {u['parent_uid']}")
sys.exit(1)
# 保存为 JSON 文件
with open('test_cases_resolved.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print(f'OK: {len(data)} nodes saved to /tmp/test_cases_resolved.json')
test_cases_resolved.json 代替 test_cases.md清理旧的 update 文件 - 添加前先确保目标 update 文件是干净的:
echo '{"added": [], "updated": [], "deleted": []}' > .testbuddy/assets/<design_uid>-update.json
添加节点到脑图 - 使用 add_nodes 能力执行添加(注意使用步骤4生成的 JSON 文件):
python3 .codebuddy/skills/testbuddy-skill/scripts/write_node_from_file.py add <design_uid> /tmp/test_cases_resolved.json
"status": "success" 且 added 数量大于 0-update.json 文件已生成:执行 ls -la .testbuddy/assets/<design_uid>-update.json 验证文件存在且大小合理渲染节点到画布(强制) - 调用 MCP 工具 show_node 渲染节点:
mcp_call_tooltestbuddy_toolsshow_node清理临时文件 - 删除步骤4生成的临时 JSON 文件:
rm -f test_cases_resolved.json
约束条件: