360 Secure SkillHub
360 安全技能中心

Agent Testcase Generator

该 Skill 依据用户提供的测试点清单或功能模块,设计功能测试、API 测试与 UI 自动化场景的测试用例,强制采用含用例标识、测试目的、前置条件、测试数据、执行步骤、预期结果与验证点等 14 个必填字段的标准格式,并将结果写入指定的飞书知识库位置;不负责执行测试或生成测试点。

luiciferyi
luiciferyi
热度 43.35
最近更新 2026-05-11 17:42:41
分类:开发依赖:读写文件 / 第三方 API / 内部调用大模型应用场景:模板 / 工作流 / API 集成

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add agent-testcase-generator
Metadata
name
agent-testcase-generator
description
基于测试点生成标准化测试用例,含前置条件、测试步骤、预期结果、优先级。覆盖功能测试、API 测试、UI 自动化测试场景。 **⚠️ 强制要求:所有测试用例必须使用标准格式,见 [测试用例标准格式.md](测试用例标准格式.md)** Use when: 用户说"生成测试用例"、"写测试用例"、"测试用例设计"。 NOT for: 执行自动化测试、生成测试点(用 agent-testpoint-generator)。
allowed-tools
["read","write","feishu_create_doc","feishu_update_doc","feishu_fetch_doc","message"]

Agent Testcase Generator

飞书文档写入位置

知识库: 7616288931050507220
节点: 效果评测/测试用例
wiki_node: FZXtwQd70iFCD3kifibcdBbpnId

⚠️ 强制要求:所有测试用例必须使用标准格式,包含14个必填字段!

When to Run

  • 测试点整理完成后
  • 用户提供功能模块或测试点清单
  • 需要编写详细测试用例

⚠️ 强制格式要求

必须包含的14个字段

  1. ✅ 用例标识(编号、名称、模块、需求、优先级、类型、设计人、日期)
  2. ✅ 测试目的
  3. ✅ 前置条件
  4. ✅ 测试数据(输入数据、预置数据)
  5. ✅ 执行步骤
  6. ✅ 预期结果
  7. ✅ 预期结果验证点
  8. ✅ 实际结果(执行时填写)
  9. ✅ 边界条件
  10. ✅ 异常场景
  11. ✅ 关联用例
  12. ✅ 自动化标记
  13. ✅ 数据准备
  14. ✅ 执行历史

格式规范

  • 使用 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 作为分隔线
  • 使用 📋 作为段落标记
  • 预期结果必须可验证、可量化
  • 必须包含验证点详细说明

禁止事项

  • ❌ 缺少任何必填字段
  • ❌ 预期结果模糊(如"正常显示")
  • ❌ 缺少验证点
  • ❌ 使用不可验证的描述

Workflow

  1. 接收测试点清单或功能模块
  2. 为每个测试点设计详细的测试步骤
  3. 区分功能测试用例和 API 测试用例
  4. 设计测试数据(输入数据、预期结果数据)
  5. 标记可自动化测试的用例
  6. 识别需要数据准备的用例
  7. 输出结构化测试用例(含14个必填字段)

测试用例设计规范

测试用例要素(14个必填)

要素 说明 示例
用例编号 唯一标识 TC-CREATE-001
用例名称 简明描述测试内容 创建智能体 - 正常流程
所属模块 功能模块 智能体管理
所属需求 关联需求ID REQ-001
优先级 P0/P1/P2 P0
用例类型 功能/接口/UI/性能/安全 功能
测试目的 为什么要测试 验证创建功能正确性
前置条件 执行前必须满足的条件 用户已登录、有权限
测试数据 具体输入数据 名称="测试助手"、模型="deepseek-chat"
执行步骤 可执行的操作步骤 1.进入页面 2.输入数据 3.点击按钮
预期结果 期望的结果(可验证) 1.提示成功 2.页面跳转 3.数据正确
验证点 详细验证点 检查点1、检查点2、检查点3
边界条件 边界值情况 最小值、最大值、空值
异常场景 相关异常 名称为空、重复、超长
自动化标记 是否可自动化 ✅ 可自动化 / ❌ 手工测试
数据准备 是否需要预置数据 需要预置用户账号

预期结果 vs 实际结果

预期结果(Expected Result)

  • 定义:执行测试步骤后,系统应该产生的正确行为或输出
  • 特点:
    • 在测试用例设计时确定
    • 基于需求文档定义
    • 必须可验证、可量化
    • 作为判断测试通过/失败的标准
  • 示例:
    • ✅ 页面显示"创建成功"提示
    • ✅ 数据库新增一条记录,name="测试助手"
    • ✅ API返回状态码201,body包含agent_id字段

实际结果(Actual Result)

  • 定义:执行测试步骤后,系统实际产生的行为或输出
  • 特点:
    • 在测试执行时记录
    • 与预期结果对比判断通过/失败
    • 失败时需要详细记录,便于缺陷定位
  • 示例:
    • ✅ 与预期一致:页面显示"创建成功"(测试通过)
    • ❌ 与预期不符:页面显示"系统错误"(测试失败)

结果对比示例

用例 预期结果 实际结果(通过) 实际结果(失败)
创建智能体 1.提示"创建成功"2.跳转到列表页 1.✅ 提示"创建成功"2.✅ 跳转到列表页 1.❌ 提示"系统错误"2.❌ 停留在创建页
名称为空校验 提示"名称不能为空" ✅ 提示"名称不能为空" ❌ 创建成功,无提示
API创建成功 返回201,包含agent_id ✅ 返回201,agent_id=12345 ❌ 返回500,body为空

输出格式

智能体平台测试用例(标准格式)

模块 1:智能体创建与配置

功能测试用例
【测试用例】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 用例标识
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
用例编号:    TC-CREATE-001
用例名称:    创建智能体-正常流程
所属模块:    智能体管理
所属需求:    REQ-001
优先级:      P0
用例类型:    功能
设计人:      [设计人]
设计日期:    [YYYY-MM-DD]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 测试目的
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
验证智能体创建功能在正常输入下的正确性,确保用户能够成功创建智能体
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 前置条件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 用户已登录系统
- 用户有创建智能体的权限
- 网络连接正常
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 测试数据
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
输入数据:
- 名称:测试助手
- 描述:这是一个测试智能体
- 模型:deepseek-chat

预置数据:
- 用户账号已存在
- 模型列表已加载
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 执行步骤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 进入智能体创建页面
2. 在名称输入框输入"测试助手"
3. 在描述输入框输入"这是一个测试智能体"
4. 在模型选择下拉框选择"deepseek-chat"
5. 点击"创建"按钮
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 预期结果
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 预期1:页面显示"创建成功"提示
- 预期2:页面自动跳转到智能体列表页
- 预期3:智能体列表中显示新创建的"测试助手"
- 预期4:数据库中新增一条智能体记录,name="测试助手"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 预期结果验证点
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
验证点1:页面提示验证
- 验证内容:页面显示"创建成功"
- 验证方式:页面元素检查
- 预期值:提示文本等于"创建成功"

验证点2:页面跳转验证
- 验证内容:页面URL变化
- 验证方式:URL检查
- 预期值:URL包含"/agents/list"

验证点3:列表数据验证
- 验证内容:列表显示新智能体
- 验证方式:列表元素检查
- 预期值:列表第一项name="测试助手"

验证点4:数据库验证
- 验证内容:数据库记录
- 验证方式:数据库查询
- 预期值:存在记录,name="测试助手", status="active"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 实际结果(执行时填写)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[执行时填写]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 边界条件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 名称长度:1-50字符
- 描述长度:0-200字符
- 必填字段:名称、模型
- 选填字段:描述
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 异常场景
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 异常1:名称为空 → 预期:提示"名称不能为空"
- 异常2:名称重复 → 预期:提示"名称已存在"
- 异常3:名称超长 → 预期:提示"名称长度不能超过50"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 关联用例
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 前置用例:TC-LOGIN-001(用户登录)
- 后置用例:TC-CREATE-002(名称为空校验)
- 相关用例:TC-EDIT-001(编辑智能体)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 自动化标记
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
是否可自动化:  ✅ 是
自动化工具:    Playwright
自动化优先级:  P0
自动化状态:    已完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 数据准备
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- [ ] 测试账号准备
- [ ] 测试数据准备
- [ ] 预置数据准备
- [ ] 环境配置准备
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 执行历史
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| 执行日期 | 执行人 | 执行结果 | 缺陷ID | 备注 |
|----------|--------|----------|--------|------|
| | | | | |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 备注
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
无
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
API 测试用例
【测试用例】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 用例标识
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
用例编号:    TC-API-001
用例名称:    创建智能体接口-正常请求
所属模块:    智能体管理-API
所属需求:    REQ-API-001
优先级:      P0
用例类型:    接口
设计人:      [设计人]
设计日期:    [YYYY-MM-DD]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 测试目的
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
验证创建智能体接口在正常请求参数下的正确性
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 前置条件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 用户已登录,获取有效token
- 用户有创建智能体的权限
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 测试数据
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
请求方法:POST
请求URL:/api/v1/agent
请求头:
- Content-Type: application/json
- Authorization: Bearer {token}

请求体:
{
  "name": "测试助手",
  "description": "这是一个测试智能体",
  "model": "deepseek-chat"
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 执行步骤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 构造请求参数
2. 发送POST请求
3. 接收响应结果
4. 验证响应状态码
5. 验证响应体内容
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 预期结果
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 预期1:HTTP状态码为201
- 预期2:响应体包含agent_id字段
- 预期3:响应体name字段等于"测试助手"
- 预期4:响应体status字段等于"active"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 预期结果验证点
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
验证点1:状态码验证
- 验证内容:HTTP状态码
- 验证方式:response.status_code
- 预期值:201

验证点2:响应体字段验证
- 验证内容:agent_id字段存在
- 验证方式:response.json()
- 预期值:agent_id不为空

验证点3:响应体数据验证
- 验证内容:name字段值
- 验证方式:response.json()
- 预期值:name="测试助手"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 实际结果(执行时填写)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[执行时填写]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 边界条件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 请求体大小:最大10KB
- 字段长度:name最大50字符
- 必填字段:name、model
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 异常场景
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 异常1:缺少name字段 → 预期:返回400,错误信息"name不能为空"
- 异常2:无效token → 预期:返回401,错误信息"未授权"
- 异常3:重复名称 → 预期:返回409,错误信息"名称已存在"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 关联用例
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 前置用例:TC-API-AUTH-001(获取token)
- 后置用例:TC-API-002(缺少必填参数)
- 相关用例:TC-API-GET-001(获取智能体列表)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 自动化标记
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
是否可自动化:  ✅ 是
自动化工具:    pytest + requests
自动化优先级:  P0
自动化状态:    已完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 数据准备
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- [ ] 测试账号准备
- [ ] 获取有效token
- [ ] 预置数据准备
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📋 执行历史
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| 执行日期 | 执行人 | 执行结果 | 缺陷ID | 备注 |
|----------|--------|----------|--------|------|
| | | | |