# 生长与出栏标准管理 — 测试用例 > 依据:`生长与出栏标准管理功能需求.md`、`生长与出栏标准管理技术方案.md` > **接口 Base Path(示例)**:`/breedingStandards/growthOutbound`;若含 `context-path` 或网关前缀须补齐。鉴权与若依一致(Cookie / Token)。 **通用前置(无特殊说明)**:具备本模块菜单与按钮权限的账号已登录;知识库可用;可先调 `/common/upload` 取得正文/封面的 `url`、`fileName`(存储路径)、`originalFilename`(正文展示名)。正文白名单:`pdf`/`md`/`doc`/`docx`/`xls`/`xlsx`/`ppt`/`pptx`(≤30MB);封面:`jpg`/`jpeg`/`png`(≤10MB)。**标准名称**:需求 **1~20** 字符(**必填**)。**标准类型编码**:`001011`=牦牛生长,`001012`=牦牛出栏(`parentCode=001`,`categoryType=4`)。 **界面(UI)测试**:借助 **Playwright** 启动 **Chromium**(与 **Google Chrome 同源内核**);可配置 `channel: 'chrome'` 调用本机已安装的谷歌浏览器,模拟点击、输入、文件选择与断言。 --- ## 一、单元测试用例 | 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | SZCL-BZ-UT-001 | 状态机 | 合法状态组合 | 单元测试 | JUnit5 | 仅三种稳态可持久化 | 无 | 校验 `(publish_status,kb_sync_status)` 为 (0,0)(0,1)(1,1) | 均为合法;(1,0) 等其余组合拒绝 | | SZCL-BZ-UT-002 | 状态机 | 编辑守卫 | 单元测试 | JUnit5 | 仅未发布未同步可改 | 无 | `canEdit(0,0)` true;`(0,1)`/`(1,*)` false | 与需求矩阵一致 | | SZCL-BZ-UT-003 | 状态机 | 手动同步守卫 | 单元测试 | JUnit5 | 仅未发布未同步 | 无 | `canSyncKb(0,0)` true;其余 false | 与矩阵一致 | | SZCL-BZ-UT-004 | 状态机 | 移出守卫 | 单元测试 | JUnit5 | 仅未发布已同步 | 无 | `canRemoveKb(0,1)` true;其余 false | 与 §4.7 一致 | | SZCL-BZ-UT-005 | 状态机 | 发布守卫 | 单元测试 | JUnit5 | 仅未发布已同步 | 无 | `canPublish(0,1)` true;(0,0)(1,1) false | 与 §4.8 一致 | | SZCL-BZ-UT-006 | 状态机 | 下架守卫 | 单元测试 | JUnit5 | 仅已发布 | 无 | `canOffline(1)` true;`publish=0` false | 与矩阵一致 | | SZCL-BZ-UT-007 | 状态机 | 删除守卫 | 单元测试 | JUnit5 | 与 §4.4 对齐 | 无 | `publish=1` 不可删;`kb=0` 可直接删;`0+1` 仅允许先移出或删除流程内联动删库 | 无越权直删致 KB 孤儿 | | SZCL-BZ-UT-008 | 参数校验 | 标准名称长度 | 单元测试 | JUnit5 | 1~20 字 | 无 | 空串、1 字、20 字、21 字调用校验 | 空/21 失败;1~20 通过 | | SZCL-BZ-UT-009 | 参数校验 | 简介字数 | 单元测试 | JUnit5 | 选填 ≤50 | 无 | null/空串通过;51 字失败 | 符合 §4.1 | | SZCL-BZ-UT-010 | 参数校验 | 标准类型 | 单元测试 | JUnit5 | 有效资讯编码 | Mock 子集含 001011/001012 | 空、`999999` 失败;001011/001012 通过 | 与技术方案 §2.2 一致 | | SZCL-BZ-UT-011 | 附件校验 | 正文后缀 | 单元测试 | JUnit5 | 白名单 | 无 | `.pdf` 通过;`.exe` 拒绝 | 与需求一致 | | SZCL-BZ-UT-012 | 附件校验 | 封面后缀 | 单元测试 | JUnit5 | 白名单 | 无 | `.jpg` 通过;`.bmp` 拒绝 | 与需求一致 | | SZCL-BZ-UT-013 | Service | 更新已发布拒绝 | 单元测试 | JUnit5+Mockito | 守卫分支 | Mock `publish=1` | 调用 `update(...)` | 业务失败;不写库 | | SZCL-BZ-UT-014 | Service | 同步成功翻转状态 | 单元测试 | JUnit5+Mockito | 首次入库 | Mock KB 成功返回 docId | `syncKb(id)` | `kb_sync_status=1`;`kb_doc_id` 非空 | | SZCL-BZ-UT-015 | Service | 同步失败不翻转 | 单元测试 | JUnit5+Mockito | 可重试 | Mock KB 失败 | `syncKb(id)` | 仍为未同步 | | SZCL-BZ-UT-016 | Service | 已同步修改拒绝 | 单元测试 | JUnit5+Mockito | §4.3 | Mock `publish=0,kb=1` | `update(...)` | 抛业务异常;无脏写 | | SZCL-BZ-UT-017 | Service | 下架成功回流 | 单元测试 | JUnit5+Mockito | §4.8 | Mock KB 下架成功 | `offline(id)` | `publish=0`;`kb=1`;保留 `kb_doc_id` | | SZCL-BZ-UT-018 | Service | 移出成功 | 单元测试 | JUnit5+Mockito | §4.7 | Mock KB 删除成功 | `removeKb(id)` | `kb=0`;清空 `kb_doc_id` | | SZCL-BZ-UT-019 | Service | 发布成功 | 单元测试 | JUnit5+Mockito | 上架 | Mock KB(若发布需通知) | `publish(id)` | `publish=1` | | SZCL-BZ-UT-020 | Service | 未同步保存不调 KB | 单元测试 | JUnit5+Mockito | §4.3 | `publish=0,kb=0` | `update` 成功路径 | Mock 验证**未调用**知识库更新 | | SZCL-BZ-UT-021 | Service | 删除联动 KB | 单元测试 | JUnit5+Mockito | §4.4 | `kb=0`;Mock 删文件 | `remove(ids)` | 删记录;Mock 验证知识库删除调用与对接一致 | --- ## 二、接口测试用例 | 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | SZCL-BZ-API-001 | 列表 | 默认分页排序 | 接口测试 | Postman/curl | §4.2 | 已登录;有数据 | `GET /growthSlaughter/standard/list` | `rows`≤默认 20;`create_time` 倒序 | | SZCL-BZ-API-002 | 列表 | 关键字 OR | 接口测试 | Postman | 名称/简介模糊 | 已登录 | `keyword=` 唯一词 | 命中名称或简介 | | SZCL-BZ-API-003 | 列表 | 类型筛选-生长 | 接口测试 | Postman | 精确匹配 | 已登录 | `standardType=001011` | 返回均为牦牛生长 | | SZCL-BZ-API-004 | 列表 | 类型筛选-出栏 | 接口测试 | Postman | 精确匹配 | 已登录 | `standardType=001012` | 返回均为牦牛出栏 | | SZCL-BZ-API-005 | 列表 | 组合查询 | 接口测试 | Postman | keyword+type | 已登录 | 同时传 keyword 与 standardType | 同时满足 | | SZCL-BZ-API-006 | 新增 | 合法提交-生长 | 接口测试 | Postman/Swagger | 正常新增 | 已登录;已上传正文 | `POST /growthSlaughter/standard` Body 合法、`standardType=001011` | `code` 成功;publish=0,kb=0 | | SZCL-BZ-API-007 | 新增 | 合法提交-出栏 | 接口测试 | Postman | 类型覆盖 | 已登录 | `POST` Body `standardType=001012` 其余合法 | 成功 | | SZCL-BZ-API-008 | 新增 | 名称非法 | 接口测试 | Postman | 1~20 边界 | 已登录 | 名称空串或 21 字或缺字段 | 失败;无新记录 | | SZCL-BZ-API-009 | 新增 | 名称单字合法 | 接口测试 | Postman | 1~20 下限 | 已登录 | 名称 1 字+其余合法 | 成功 | | SZCL-BZ-API-010 | 新增 | 类型非法 | 接口测试 | Postman | 编码 | 已登录 | `standardType=999999` | 失败;提示含「标准类型无效」 | | SZCL-BZ-API-011 | 新增 | 简介超长 | 接口测试 | Postman | ≤50 | 已登录 | introduction 超 50 字 | 失败 | | SZCL-BZ-API-012 | 详情 | 有效 id | 接口测试 | Postman | 字段完整 | 已登录 | `GET /growthSlaughter/standard/{id}` | 含 contentFileName、双维状态 | | SZCL-BZ-API-013 | 详情 | 无效 id | 接口测试 | Postman | 异常 | 已登录 | 不存在 id | 404 或业务失败 | | SZCL-BZ-API-014 | 修改 | 未发布成功 | 接口测试 | Postman | 正常 | 已登录;publish=0 | `PUT /growthSlaughter/standard` | 成功 | | SZCL-BZ-API-015 | 修改 | 已发布拒绝 | 接口测试 | Postman | §4.3 | 已登录;publish=1 | `PUT` | 失败;数据不变 | | SZCL-BZ-API-016 | 删除 | 未同步 | 接口测试 | Postman | §4.4 | 已登录;kb=0 | `DELETE /growthSlaughter/standard/{ids}` | 成功 | | SZCL-BZ-API-017 | 删除 | 已发布 | 接口测试 | Postman | 禁止 | 已登录;publish=1 | `DELETE` | 失败 | | SZCL-BZ-API-018 | 删除 | 未发布已同步 | 接口测试 | Postman | §4.4 | 已登录;0+1 | `DELETE`(视实现) | 失败提示先移出或联动删库成功且无孤儿 | | SZCL-BZ-API-019 | 同步 | 首次同步 | 接口测试 | Postman | §4.6 | 已登录;0+0 | `POST /growthSlaughter/standard/syncKb/{id}` | kb=1 | | SZCL-BZ-API-020 | 同步 | 重复同步 | 接口测试 | Postman | 矩阵 | 已登录;0+1 | `POST .../syncKb/{id}` | 失败 | | SZCL-BZ-API-021 | 移出 | 成功 | 接口测试 | Postman | §4.7 | 已登录;0+1 | `POST /growthSlaughter/standard/removeKb/{id}` | kb=0 | | SZCL-BZ-API-022 | 发布 | 成功 | 接口测试 | Postman | §4.8 | 已登录;0+1 | `POST /growthSlaughter/standard/publish/{id}` | publish=1 | | SZCL-BZ-API-023 | 发布 | 未同步禁止 | 接口测试 | Postman | 矩阵 | 已登录;0+0 | `POST .../publish/{id}` | 失败 | | SZCL-BZ-API-024 | 下架 | 成功回流 | 接口测试 | Postman | §4.8 | 已登录;publish=1 | `POST /growthSlaughter/standard/offline/{id}` | publish=0;kb=1 | | SZCL-BZ-API-025 | 下架 | 非已发布 | 接口测试 | Postman | 约束 | 已登录;草稿 | `POST .../offline/{id}` | 失败 | | SZCL-BZ-API-026 | 鉴权 | 未登录 | 接口测试 | curl | 安全 | 无凭证 | `GET .../list` | 401 或跳转登录 | | SZCL-BZ-API-027 | 权限 | 无写权限 | 接口测试 | Postman | 越权 | 仅 list 权限 | `POST /growthSlaughter/standard` | 无权限失败 | | SZCL-BZ-API-028 | 响应 | 失败可读 | 接口测试 | Postman | §6 | 已登录 | 故意触发名称空串等校验 | Body 含可读 `msg`;`code` 与项目约定一致 | | SZCL-BZ-API-029 | 修改 | 已同步禁止修改 | 接口测试 | Postman | §4.3 | 已登录;0+1 | `PUT` 改名称 | 失败;提示已同步不可改 | | SZCL-BZ-API-030 | 附件 | 超限(可选) | 接口测试 | Postman | §4.1 | 环境允许略超 30MB | 上传或提交触发服务端校验 | 明确大小/格式类提示;不落库 | --- ## 三、界面测试用例(UI) **测试工具**:**Playwright** + **Chromium**(`channel: 'chrome'` 时使用本机 **Google Chrome**)。步骤与脚本映射:`page.goto`、`locator.fill`、`locator.click`、`setInputFiles`、`expect`;确认框处理 `dialog` 或 `getByRole('button', { name: /确定/ })`。 | 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | SZCL-BZ-UI-001 | 列表 | 默认分页排序 | UI 测试 | Playwright+Chrome/Chromium | §4.2 | 已登录;数据>20 | 进入生长与出栏标准列表 | 默认每页 20;创建时间新在前 | | SZCL-BZ-UI-002 | 列表 | 关键字-名称 | UI 测试 | Playwright+Chrome/Chromium | 名称模糊 | 存在名称含关键词记录 | 输入关键字→查询 | 表格含该行 | | SZCL-BZ-UI-003 | 列表 | 关键字-简介 | UI 测试 | Playwright+Chrome/Chromium | OR | 简介含词、名称不含 | 输入该词→查询 | 命中 | | SZCL-BZ-UI-004 | 列表 | 类型筛选-生长 | UI 测试 | Playwright+Chrome/Chromium | 精确 | 两类型均有数据 | 选「牦牛生长」→查询 | 类型列均为牦牛生长 | | SZCL-BZ-UI-005 | 列表 | 类型筛选-出栏 | UI 测试 | Playwright+Chrome/Chromium | 精确 | 两类型均有数据 | 选「牦牛出栏」→查询 | 类型列均为牦牛出栏 | | SZCL-BZ-UI-006 | 列表 | 组合与重置 | UI 测试 | Playwright+Chrome/Chromium | 恢复条件 | 已筛选 | 关键字+类型→查询→重置 | 恢复默认列表 | | SZCL-BZ-UI-007 | 列表 | 状态与按钮矩阵 | UI 测试 | Playwright+Chrome/Chromium | §5 | 准备 0+0、0+1、1+1 各一条 | 逐行检查操作按钮 | 同步仅 0+0;移出/发布仅 0+1;下架仅 1+1;删除仅未同步路径 | | SZCL-BZ-UI-008 | 新增 | 完整合法主流程 | UI 测试 | Playwright+Chrome/Chromium | §3.1 | 已登录 | 新增→名称(1~20)、类型、简介、正文、封面→提交 | 成功;**未发布+未同步** | | SZCL-BZ-UI-009 | 新增 | 简介封面选填 | UI 测试 | Playwright+Chrome/Chromium | §4.1 | 已登录 | 简介空、不传封面;其余合法→提交 | 成功 | | SZCL-BZ-UI-010 | 新增 | 名称空或超长 | UI 测试 | Playwright+Chrome/Chromium | 1~20 | 已登录 | 名称留空或输入 21 字→提交 | 校验失败;无新记录 | | SZCL-BZ-UI-011 | 新增 | 名称单字合法 | UI 测试 | Playwright+Chrome/Chromium | 下限 | 已登录 | 名称 1 字+其余合法→提交 | 成功 | | SZCL-BZ-UI-012 | 新增 | 类型必选 | UI 测试 | Playwright+Chrome/Chromium | 约束 | 若 UI 可清空类型 | 不选类型→提交 | 必选提示 | | SZCL-BZ-UI-013 | 新增 | 正文必填 | UI 测试 | Playwright+Chrome/Chromium | §4.1 | 已登录 | 不上传正文→提交 | 失败提示 | | SZCL-BZ-UI-014 | 新增 | 简介超长 | UI 测试 | Playwright+Chrome/Chromium | 异常 | 已登录 | 简介>50 字→提交 | 失败 | | SZCL-BZ-UI-015 | 新增 | 正文格式/大小 | UI 测试 | Playwright+Chrome/Chromium | §4.1 | 非法后缀或超限文件 | 上传/提交 | 拒绝或明确错误 | | SZCL-BZ-UI-016 | 新增 | 封面格式/大小 | UI 测试 | Playwright+Chrome/Chromium | §4.1 | 非法图或>10MB | 上传封面 | 失败或提示 | | SZCL-BZ-UI-017 | 详情 | 字段与附件名 | UI 测试 | Playwright+Chrome/Chromium | §4.5 | 任意记录 | 点详情 | 名称类型简介正文文件名封面及双维状态齐全 | | SZCL-BZ-UI-018 | 详情 | 已发布只读 | UI 测试 | Playwright+Chrome/Chromium | §4.5 | 已发布 | 开详情 | 无保存类编辑 | | SZCL-BZ-UI-019 | 详情 | 下架回流只读 | UI 测试 | Playwright+Chrome/Chromium | §4.8 | 已下架回流样本 | 开详情 | **未发布+已同步**;**无**编辑入口 | | SZCL-BZ-UI-020 | 修改 | 未同步仅本地 | UI 测试 | Playwright+Chrome/Chromium | §4.3 | 0+0 | 编辑保存 | 成功;仍为未同步 | | SZCL-BZ-UI-021 | 修改 | 已同步禁止修改 | UI 测试 | Playwright+Chrome/Chromium | §4.3 | 0+1 | 尝试编辑保存 | 失败提示已同步不可改 | | SZCL-BZ-UI-022 | 修改 | 已发布禁止 | UI 测试 | Playwright+Chrome/Chromium | 矩阵 | 已发布 | 尝试编辑 | 不可保存 | | SZCL-BZ-UI-023 | 修改 | 保存仍校验必填 | UI 测试 | Playwright+Chrome/Chromium | 异常 | 未发布 | 清空名称或去掉正文→保存 | 校验失败 | | SZCL-BZ-UI-024 | 知识库 | 手动同步 | UI 集成 | Playwright+Chrome/Chromium | §4.6 | 0+0 | 点同步→确认 | **已同步** | | SZCL-BZ-UI-025 | 知识库 | 已同步无同步钮 | UI 测试 | Playwright+Chrome/Chromium | 矩阵 | 0+1 | 查看操作区 | 「同步」不可用或隐藏 | | SZCL-BZ-UI-026 | 知识库 | 已发布无同步 | UI 测试 | Playwright+Chrome/Chromium | §4.6 | 1+1 | 查看操作区 | 无同步;须先下架 | | SZCL-BZ-UI-027 | 知识库 | 移出 | UI 集成 | Playwright+Chrome/Chromium | §4.7 | 0+1 | 移出→确认 | **未同步** | | SZCL-BZ-UI-028 | 知识库 | 已发布无移出 | UI 测试 | Playwright+Chrome/Chromium | §4.7 | 1+1 | 查看操作区 | 无「移出」 | | SZCL-BZ-UI-029 | 知识库 | 同步失败可重试 | UI 测试 | Playwright+Chrome/Chromium | 异常 | KB 不可用;0+0 | 点同步 | 明确失败;仍为未同步 | | SZCL-BZ-UI-030 | 发布下架 | 发布 | UI 测试 | Playwright+Chrome/Chromium | §4.8 | 0+1 | 发布→确认 | **已发布** | | SZCL-BZ-UI-031 | 发布下架 | 未同步禁发 | UI 测试 | Playwright+Chrome/Chromium | 矩阵 | 0+0 | 尝试发布 | 不可用或提示 | | SZCL-BZ-UI-032 | 发布下架 | 下架回流 | UI 集成 | Playwright+Chrome/Chromium | §4.8 | 已发布 | 下架→确认 | **未发布+已同步**;KB 仍保留条目(抽查) | | SZCL-BZ-UI-033 | 发布下架 | 下架后再发布 | UI 集成 | Playwright+Chrome/Chromium | 闭环 | 完成 UI-032 | 再发布 | 再次已发布;无须新建 | | SZCL-BZ-UI-034 | 发布下架 | 下架失败提示 | UI 测试 | Playwright+Chrome/Chromium | 异常 | 已发布;KB 下架不可用 | 点下架 | 失败提示;仍为已发布 | | SZCL-BZ-UI-035 | 删除 | 未同步可删 | UI 测试 | Playwright+Chrome/Chromium | §4.4 | 0+0 | 删除→确认 | 记录消失 | | SZCL-BZ-UI-036 | 删除 | 已发布禁删 | UI 测试 | Playwright+Chrome/Chromium | 矩阵 | 已发布 | 尝试删除 | 不可删或提示下架 | | SZCL-BZ-UI-037 | 删除 | 0+1 须移出或联动 | UI 测试 | Playwright+Chrome/Chromium | §4.4 | 0+1 | 直接删失败则移出再删 | 最终删除成功;KB 无残留 | | SZCL-BZ-UI-038 | 附件 | 删后链接失效 | UI 测试 | Playwright+Chrome/Chromium | 存储清理 | 删除前复制正文 URL | 删除后新标签打开 | 不可访问 | | SZCL-BZ-UI-039 | 端到端 | 全状态机串联 | UI 集成 | Playwright+Chrome/Chromium | §3.1 | 可新建 | 新增→同步→改→发布→下架→改→再发布→下架→移出→删 | 每步双维状态符合矩阵 | | SZCL-BZ-UI-040 | 权限 | 只读账号 | UI 测试 | Playwright+Chrome/Chromium | 安全 | 无写权限 | 登录进模块 | 无新增/编辑或拒绝 | | SZCL-BZ-UI-041 | 修改 | 替换正文封面 | UI 测试 | Playwright+Chrome/Chromium | 单附件 | 未发布 | 编辑→换正文与封面→保存 | 详情为新文件名;旧文件不可访问 | | SZCL-BZ-UI-042 | 修改 | 未同步不调 KB | UI 测试 | Playwright+Chrome/Chromium | §4.3 | 0+0;KB 可观测 | 修改保存 | 业务成功;KB 无新增(与同步前一致) | | SZCL-BZ-UI-043 | 修改 | 推库失败一致性 | UI 测试 | Playwright+Chrome/Chromium | 异常 | 0+1;KB 更新失败 | 编辑保存 | 若约定整单失败:提示且数据不脏写 | | SZCL-BZ-UI-044 | 新增 | 名称 20 字边界 | UI 测试 | Playwright+Chrome/Chromium | 上限 | 已登录 | 名称恰好 20 字+合法正文→提交 | 成功 | | SZCL-BZ-UI-045 | 类型 | 两类编码均可走发布流 | UI 测试 | Playwright+Chrome/Chromium | §2.1 | 已登录 | 下拉来自资讯类别;各建 001011/001012 各一条并筛选 | 展示与筛选正确 | --- ## Playwright 与谷歌浏览器(实施提示) - 安装:`npm i -D @playwright/test`;`npx playwright install chromium`;使用本机 Chrome 时 `npx playwright install chrome` 并配置 `channel: 'chrome'`。 - `playwright.config.ts` 示例:`use: { channel: 'chrome', headless: false, locale: 'zh-CN' }`。 - 登录复用:`storageState` 保存会话,减少每条用例登录。 - 菜单路径、按钮文案以实际前端为准,选择器可用 `getByRole('button', { name: /同步知识库|发布|下架|移出/ })` 等正则适配。 --- ## 覆盖对照 | 类别 | 单元 UT | 接口 API | 界面 UI | | --- | --- | --- | --- | | 正常流程 | UT-014~019 | API-001~007、012、014、016、019~022、024、029 | UI-001~011、017~021、024、027、030~033、035、039、041、044~045 | | 异常流程 | UT-008~012、015~016 | API-008~011、013、015、017~018、020、023、025~026、028、030 | UI-010、012~016、029、034、036~038、042~043 | | 业务约束/矩阵 | UT-001~007、021 | API-015、017~018、020、023、025、027 | UI-007、018、022、025~026、028、031、036~037、040 | --- ## 功能需求追溯(自查) | 需求章节 | 要点 | 主要对应用例 | | --- | --- | --- | | §4.1 新增 | 名称 1~20、类型编码、附件、初始 0+0 | UT-008~012;API-006~011、030;UI-008~016、010~011、044~045 | | §4.2 列表 | 关键字 OR、类型、分页、排序、状态列 | API-001~005;UI-001~007 | | §4.3 修改 | 仅未发布未同步可改;0+1 拒绝 | UT-013、016、020;API-014~015、029;UI-020~023、041~043 | | §4.4 删除 | 删文件+通知 KB;0+1 | UT-007、021;API-016~018;UI-035~038 | | §4.5 详情 | 字段、只读 | API-012~013;UI-017~019 | | §4.6 同步 | 仅 0+0 | UT-003、014~015;API-019~020;UI-024~026、029 | | §4.7 移出 | 仅 0+1 | UT-004、018;API-021;UI-027~028 | | §4.8 发布/下架 | 发布前置;下架 0+1 回流 | UT-005~006、017、019;API-022~025;UI-030~034 | | §5 矩阵 | 六类操作 | UT-001~007;UI-007、039 | | §6 错误约定 | code/msg | API-028 | --- ## 修订记录 | 版本 | 说明 | | --- | --- | | 1.0 | 初版:单元/接口/UI 九要素表;Base Path `/growthSlaughter/standard`;类型 **1/2**;名称 **1~20**;Playwright+Chrome | | 2026-05-20 | **标准类型**改为资讯类别编码 `001011`/`001012`;同步 API/UI 用例与 UT 类型校验 |