skills/skills.netease.im/testcase-creator

testcase-creator

SKILL.md

testcase-creator

将用户上传的图片(产品原型图、UI 设计图、流程图、需求文档截图等)深度解析为结构化的测试需求,生成覆盖 9 大测试场景、包含丰富详细预置条件、操作步骤、预期结果的 XMind 测试用例文件。

工作流程

1. 解析图片需求(深度分析版)

当用户上传一张或多张图片时:

  1. 深度观察图片内容,识别以下信息(至少覆盖 9 大测试场景):

    功能模块分析

    • 主要功能区域、子功能、功能入口
    • 用户操作流程和路径
    • 输入字段(类型、格式、约束)
    • 输出内容(展示字段、数据格式)
    • 按钮和操作行为

    业务规则挖掘

    • 显式规则(图片中明确说明的)
    • 隐式规则(根据业务常识推断的)
    • 数据依赖关系
    • 权限控制要求
    • 状态流转逻辑

    边界条件识别

    • 数值边界(最大值、最小值、临界值)
    • 长度边界(字符数限制)
    • 格式边界(日期、邮箱、手机号等)
    • 空值处理(必填/非必填、空列表、空字符串)
    • 重复数据处理

    异常场景推导

    • 网络异常(断网、超时、弱网)
    • 服务器异常(500 错误、服务不可用)
    • 数据异常(脏数据、格式错误、关联数据缺失)
    • 用户操作异常(快速点击、回退、中断操作)
    • 第三方依赖异常(支付、短信、邮件服务失败)

    安全测试点

    • 输入验证(SQL 注入、XSS、命令注入)
    • 权限控制(未登录、越权访问、水平越权、垂直越权)
    • 敏感数据(密码、手机号、身份证的脱敏展示)
    • CSRF 防护
    • 会话管理
  2. 用专业测试语言表述需求

    • 按功能模块分层组织(一级模块 → 二级功能 → 具体操作)
    • 每个功能点标注建议优先级(P0/P1/P2/P3)
    • 明确指出测试类型(功能/边界/异常/安全/性能/体验/并发/日志/缓存)
    • 使用测试人员熟悉的专业术语
  3. 生成丰富的测试要素(关键改进):

    预置条件(必须包含以下多个维度)

    • 环境准备:测试环境、浏览器版本、设备类型
    • 账号准备:用户角色、权限等级、账号状态
    • 数据准备:前置数据、数据量级、数据状态
    • 系统状态:功能开关配置、业务配置项
    • 前置操作:需要预先完成的动作

    操作步骤(必须详细到可执行)

    • 完整的操作路径(从哪个页面进入)
    • 每个具体动作(点击、输入、选择、滑动等)
    • 输入数据的具体值(使用有意义的数据)
    • 操作顺序编号
    • 涉及的所有 UI 元素

    预期结果(必须覆盖多个层面)

    • UI 层面:页面跳转、元素显示/隐藏、状态变化
    • 数据层面:数据库变化、缓存更新、文件生成
    • 系统层面:接口响应、日志记录、消息通知
    • 用户体验:提示信息、加载状态、错误处理
    • 业务层面:业务流程完成度、状态机流转
  4. 与用户确认

    • 展示深度解析后的需求描述(按模块 + 测试类型组织)
    • 同时询问存储位置和确认需求
      • "请问测试用例文件希望保存到哪里?(默认桌面,或指定其他路径)"
      • "以上需求分析是否准确?是否有需要调整或补充的业务规则?"
      • "是否需要增加特定场景的测试(如性能、安全、兼容性)?"
    • 根据用户反馈完善需求理解或调整保存位置

2. 生成 XMind 测试用例

根据确认后的需求,按照以下规则生成 XMind 文件:

XMind 结构规范

根节点

  • 标题:必须与 XMind 文件名保持一致,格式为 [项目名称]_测试用例.xmind
  • 标记:使用减号(-)标记 标识
  • 备注:优先级映射说明
    • 优先级 1 == P0(核心功能)
    • 优先级 2 == P1(主要功能)
    • 优先级 3 == P2(次要功能)
    • 优先级 4 == P3(边缘功能)
    • 无标记 == 默认 P1

分组规则

  • 不同类型的用例必须分组展示
  • 分组节点(非叶子节点)使用 减号(-)标记 标识为 Suite
  • 前后端分离:功能测试分组下需分别建立"前端用例"和"后端用例"子分组
  • 标准分组结构:
    根节点 [-]
    ├── 功能测试 [-]
    │   ├── 前端用例 [-]
    │   │   └── 具体用例 [+]
    │   └── 后端用例 [-]
    │       └── 具体用例 [+]
    ├── 边界条件测试 [-]
    │   ├── 前端用例 [-]
    │   └── 后端用例 [-]
    ├── 异常场景测试 [-]
    │   ├── 前端用例 [-]
    │   └── 后端用例 [-]
    └── 安全测试 [-]
        ├── 前端用例 [-]
        └── 后端用例 [-]
    

节点解析规则

节点类型 标记 解析为 备注处理
根节点 - Root 丢弃
分组节点 - Suite(用例集) 丢弃
用例节点 + 测试用例 添加到用例"备注"
叶子节点 + 用例 添加到用例"备注"
叶子节点 - Suite(用例集) 丢弃

子节点内容映射(针对带"+"的用例节点):

  • 用例节点本身:必须带加号(+)标记(与优先级标记一起在 marker-refs 中声明)
  • 带"√"标记的子节点 → 前置条件(多条合并到一个节点,使用"1、第一行\n2、第二行"换行格式)
  • 带"?"标记的子节点 → 执行步骤(合并到一个节点,使用"1、第一步\n2、第二步"换行格式)
  • 无标记的子节点 → 预期结果(合并到一个节点,使用"1、第一行\n2、第二行"换行格式)

用例结构(增强版)

每个测试用例应包含:

  • 用例名称:简洁描述测试目的(动词开头,包含测试对象和场景)
  • 优先级:P0/P1/P2/P3
  • 预置条件:至少 3-5 条,覆盖环境、账号、数据、状态等维度(带√标记)
  • 执行步骤:至少 3-5 步,详细可执行(带?标记)
  • 预期结果:至少 3-5 条,覆盖 UI/数据/系统/体验层面

预置条件编写模板(必须包含以下维度)

环境准备

  • 1、测试环境已部署(版本号:vX.X.X)
  • 2、浏览器版本:Chrome XX+ / Firefox XX+ / Safari XX+
  • 3、设备类型:PC / 移动端(iOS XX+ / Android XX+)

账号准备

  • 1、已登录【角色】账号(用户名:test_user,权限:XXX)
  • 2、账号状态正常(已激活、未冻结、权限完整)
  • 3、如需特殊权限:已配置【权限名称】权限

数据准备

  • 1、已创建测试数据(类型:XXX,数量:X 条,状态:XXX)
  • 2、数据满足测试场景要求(如:包含边界值、特殊字符等)
  • 3、关联数据已准备(如:用户关联部门、订单关联商品等)

系统状态

  • 1、功能开关已开启(配置项:XXX,值:true)
  • 2、业务配置已设置(如:审批流程、通知配置等)
  • 3、缓存已清理(如适用)

前置操作

  • 1、已完成【操作名称】(如:已完成实名认证、已绑定手机号等)
  • 2、已访问【页面名称】页面
  • 3、已进入【功能模块】功能

操作步骤编写模板(必须详细可执行)

标准格式

  • 1、打开【应用/网站名称】,访问【页面名称】页面
  • 2、在【输入框名称】输入框中输入【具体数据】(数据类型/格式说明)
  • 3、点击【按钮名称】按钮
  • 4、在【下拉框名称】下拉框中选择【选项值】
  • 5、勾选/取消勾选【复选框名称】复选框
  • 6、点击【确认/提交/保存】按钮,等待系统响应

数据驱动示例

  • 1、在【手机号输入框】输入:13800138000(有效手机号)
  • 2、在【密码输入框】输入:Test@123456(符合复杂度要求)
  • 3、在【验证码输入框】输入:123456(从测试环境获取的有效验证码)

路径完整示例

  • 1、登录系统,进入【控制台】首页
  • 2、点击左侧导航栏【用户管理】菜单
  • 3、在用户列表页面,点击【新增用户】按钮
  • 4、在弹出的新增用户表单中填写信息

预期结果编写模板(必须覆盖多层面)

UI 层面

  • 1、页面跳转至【目标页面名称】
  • 2、【元素名称】显示/隐藏(如:成功提示框显示、加载动画消失)
  • 3、【按钮名称】按钮状态变为【不可点击/高亮/禁用】
  • 4、列表/表格刷新,展示最新数据
  • 5、【字段名称】字段显示值为【预期值】

数据层面

  • 1、数据库【表名】表中新增/更新一条记录(字段:XXX,值:XXX)
  • 2、缓存数据已更新/清除
  • 3、生成的文件已保存至【路径】(如:导出的 Excel 文件)
  • 4、关联数据同步更新(如:用户状态变更,关联会话失效)

系统层面

  • 1、接口响应状态码:200(或预期错误码)
  • 2、接口响应时间 < X 秒(性能要求)
  • 3、系统日志记录操作(日志级别:INFO,内容:XXX)
  • 4、消息通知已发送(如:邮件、短信、站内信)

用户体验层面

  • 1、显示【提示信息内容】提示(成功/失败/警告)
  • 2、加载状态展示正常(loading 动画、进度条)
  • 3、错误提示清晰明确,指导用户下一步操作
  • 4、页面响应流畅,无明显卡顿

业务层面

  • 1、业务流程完成(如:订单创建成功,状态变为"待支付")
  • 2、状态机流转正确(如:从"草稿"→"已提交"→"审核中")
  • 3、业务规则验证通过(如:库存扣减、积分计算)
  • 4、后续流程可正常触发(如:审批流程启动)

测试场景覆盖(9 大场景)

完整的测试用例应覆盖以下 9 大场景:

  1. 功能测试 - 正常业务流程、增删改查、导入导出

    • 正向流程:完整业务闭环
    • 分支流程:不同选择导致的不同路径
    • 数据操作:增删改查 CRUD
  2. 边界条件测试 - 长度限制、数值边界、格式边界

    • 最小值/最大值/临界值
    • 空值/null/空字符串
    • 最大长度/最小长度
    • 特殊字符/emoji/多语言
  3. 异常场景测试 - 网络异常、服务器异常、数据异常

    • 网络超时/断网/弱网
    • 服务器 500/502/503 错误
    • 数据格式错误/脏数据
    • 第三方服务失败
  4. 安全测试 - SQL 注入、XSS、CSRF、未授权访问、越权操作

    • 输入验证绕过
    • 权限控制失效
    • 敏感数据泄露
    • 会话劫持
  5. 性能测试 - 响应时间、大数据量处理、并发查询

    • 单接口响应时间
    • 列表分页性能
    • 大数据量导入导出
    • 并发用户操作
  6. 用户体验测试 - 空状态、加载中、错误提示、键盘导航、响应式

    • 空数据状态展示
    • 加载状态友好性
    • 错误提示可读性
    • 移动端适配
  7. 并发测试 - 并发编辑、并发删除、并发导入

    • 多用户同时操作同一数据
    • 重复提交防护
    • 乐观锁/悲观锁
  8. 日志记录测试 - 操作日志、审计日志

    • 关键操作留痕
    • 日志内容完整性
    • 日志查询功能
  9. 缓存测试 - 缓存命中、缓存失效、缓存更新

    • 缓存数据一致性
    • 缓存过期处理
    • 缓存穿透/雪崩防护

3. 保存到桌面

将生成的 XMind 文件保存到用户桌面:

  • Windows: C:\Users\{用户名}\Desktop\{项目名称}_测试用例.xmind
  • macOS: /Users/{用户名}/Desktop\{项目名称}_测试用例.xmind

输出要求

  1. 需求描述阶段

    • 使用清晰的标题和列表
    • 按功能模块 + 测试类型分组
    • 标注识别到的测试点和优先级
    • 详细说明边界条件和异常场景
    • 展示 9 大测试场景的覆盖情况
  2. XMind 文件要求

    • 严格遵循模板格式
    • 用例命名不重复
    • 优先级标注正确
    • 步骤和结果对应清晰
    • 前置条件、执行步骤、预期结果分别合并到独立节点
    • 预置条件至少 3-5 条(覆盖环境、账号、数据、状态)
    • 执行步骤至少 3-5 步(详细可执行)
    • 预期结果至少 3-5 条(覆盖 UI/数据/系统/体验)

注意事项

  1. 图片质量:如图片模糊难以辨认,请求用户提供更清晰的版本
  2. 信息缺失:如图片中信息不完整,主动询问用户补充业务规则
  3. 多图片处理:如用户上传多张图片,按模块分别生成用例后合并
  4. 模板一致性:严格遵循用户提供的 template.xmind 格式要求
  5. 跨平台兼容:确保生成的 XMind 文件在 Windows 和 macOS 上都能正常打开
  6. 用例深度:避免生成过于简单的用例,每个用例都应该是完整可执行的

工具使用

使用 Python 脚本生成 XMind 文件,确保格式正确。

文件结构:

testcase-creator/
├── SKILL.md              # 技能定义
├── README.md             # 使用文档
├── template.xmind        # XMind 模板文件
└── scripts/
    ├── generate_xmind.py # XMind 生成脚本(优化版 v2)
    └── run.py            # 统一执行脚本(跨平台兼容)

模板文件位置:

  • testcase-creator/template.xmind

方式一:Python 导入调用(推荐用于代码集成)

from generate_xmind import generate_xmind

# 基本用法 - 保存到桌面
generate_xmind(
    project_name="项目名称",
    test_structure=test_data
)

# 指定输出目录
generate_xmind(
    project_name="项目名称",
    test_structure=test_data,
    output_dir="C:\\Users\\用户名\\Documents"
)

方式二:命令行调用

使用 run.py 统一脚本(跨平台兼容 PowerShell/CMD/Bash):

# 基本用法 - 使用 scripts 目录下的 testcase_data.py
python scripts/run.py --project "项目名称"

# 指定测试数据文件
python scripts/run.py --project "项目名称" --data "testcase_data.py"

# 指定输出目录
python scripts/run.py --project "项目名称" --output "C:\Users\用户名\Documents"

# 完整参数
python scripts/run.py --project "项目名称" --data "testcase_data.py" --output "C:\输出目录" --template "template.xmind"

# 自动清理临时文件
python scripts/run.py --project "项目名称" --data "testcase_data.py" --cleanup

临时文件约定:

  • 默认使用 scripts/testcase_data.py 文件
  • 脚本会自动从 scripts/ 目录加载测试数据
  • 使用 --cleanup 参数可在执行后自动删除临时文件

注意: 临时文件应放在 testcase-creator/scripts/ 目录下,避免 workspace 污染。


命令行参数说明

参数 必需 说明
--project 项目名称(用于生成文件名)
--data 测试数据文件路径(Python 文件,需定义 test_structure 变量)
--cleanup 执行后删除 --data 指定的临时文件
--output 输出目录(默认:桌面)
--template 模板文件路径(默认:使用技能目录下的 template.xmind)

测试数据文件格式(增强版)

测试数据文件需定义 test_structure 变量,格式如下:

# -*- coding: utf-8 -*-
test_structure = {
    '功能测试': {
        '前端用例': [
            # 格式:(用例名称,优先级,[前置条件], [执行步骤], [预期结果])
            (
                '用户登录 - 正常登录',
                'P0',
                [
                    '测试环境已部署(版本:v2.3.1)',
                    '浏览器:Chrome 120+',
                    '已创建测试账号(用户名:test_user,密码:Test@123456,状态:已激活)',
                    '账号权限完整(包含登录权限)'
                ],
                [
                    '打开系统登录页面(URL: https://test.example.com/login)',
                    '在【用户名输入框】输入:test_user',
                    '在【密码输入框】输入:Test@123456',
                    '点击【登录】按钮',
                    '等待系统响应(最多等待 5 秒)'
                ],
                [
                    '页面跳转至控制台首页',
                    '右上角显示用户昵称:test_user',
                    '登录成功提示显示:"欢迎回来,test_user"',
                    '系统日志记录登录操作(时间、IP、设备信息)',
                    '用户登录状态已保存(cookie/session)'
                ]
            ),
        ],
        '后端用例': [
            ('登录接口验证', 'P1', ['测试环境 API 可访问'], ['调用 POST /api/login 接口', '传入有效用户名和密码'], ['返回状态码 200', '返回用户信息完整']),
        ]
    },
    '边界条件测试': {
        '前端用例': [
            (
                '密码长度边界 - 最小长度',
                'P1',
                [
                    '已访问登录页面',
                    '测试账号已准备'
                ],
                [
                    '在【用户名输入框】输入有效用户名',
                    '在【密码输入框】输入 5 位密码(低于最小长度 6 位)',
                    '点击【登录】按钮'
                ],
                [
                    '登录按钮不响应或显示错误提示',
                    '密码框下方显示错误:"密码长度至少为 6 位"',
                    '未触发登录接口调用'
                ]
            ),
        ],
        '后端用例': []
    },
    '异常场景测试': {
        '前端用例': [],
        '后端用例': []
    },
    '安全测试': {
        '前端用例': [],
        '后端用例': []
    }
}

关键要求

  • 每个用例的前置条件至少 3-5 条
  • 每个用例的执行步骤至少 3-5 步
  • 每个用例的预期结果至少 3-5 条
  • 前置条件覆盖环境、账号、数据、状态等维度
  • 执行步骤详细可执行,包含具体数据
  • 预期结果覆盖 UI、数据、系统、体验等层面

跨平台兼容性说明

PowerShell(Windows 默认):

python scripts/run.py --project "名称"
# 或使用分号分隔
cd scripts; python run.py --project "名称"

CMD(Windows):

python scripts\run.py --project "名称"
:: 或使用 && 分隔
cd scripts && python run.py --project "名称"

Bash(macOS/Linux):

python scripts/run.py --project "名称"
# 或使用 && 分隔
cd scripts && python run.py --project "名称"

统一建议使用 run.py,避免 shell 语法差异问题。


用例质量检查清单

生成测试用例后,必须检查以下内容:

  • 预置条件是否至少 3-5 条?
  • 预置条件是否覆盖环境、账号、数据、状态等维度?
  • 执行步骤是否至少 3-5 步?
  • 执行步骤是否详细可执行(包含具体数据和操作路径)?
  • 预期结果是否至少 3-5 条?
  • 预期结果是否覆盖 UI、数据、系统、体验等层面?
  • 用例名称是否清晰描述测试目的?
  • 优先级标注是否合理?
  • 是否覆盖 9 大测试场景?
  • 边界条件是否充分(最大值、最小值、空值、特殊字符)?
  • 异常场景是否充分(网络、服务器、数据、第三方)?
  • 安全测试点是否覆盖(注入、权限、敏感数据)?
  • 用例之间是否有重复?
  • XMind 文件格式是否正确(可在 XMind 中打开)?
Installs
2
First Seen
Apr 20, 2026