西藏巴青项目

养殖标准管理测试用例.md 19KB

养殖标准管理 — 测试用例

依据:养殖标准管理功能需求.md养殖标准管理技术方案.md
执行方式:均在管理后台通过菜单进入「养殖标准管理」及相关页面完成操作(登录、上传、查询、弹窗确认、列表操作等)。知识库异常类用例通过临时停服务、断网或错误配置后在页面触发并观察提示。

通用前置(无特殊说明):具备本模块菜单及对应按钮权限的账号已登录;知识库可用;biz_information_category 已种子化。正文白名单后缀任选其一:pdf/md/doc/docx/xls/xlsx/ppt/pptx(≤30MB);封面:jpg/jpeg/png(≤10MB)。标准类型编码001001 繁育作业、001002 饲养工作、001003 免疫程序、001004 环境调控(parentCode=001categoryType=1)。

测试类型说明(表内简称):功能测试=正向与主流程;异常测试=非法输入、服务失败、附件不合规等;业务规则测试=状态机、按钮显隐与操作禁忌(不重在必填报错);权限测试=角色与越权;集成测试=跨模块/端到端串联。测试工具:默认指 Chrome 或 Edge 浏览器 访问管理后台。

本文档包含三部分:单元测试(Service/校验纯逻辑,JUnit5 + Mockito)、接口测试(HTTP,Postman / Swagger / curl / RestAssured + 有效 Token)、界面(UI)测试(浏览器操作后台页面)。Base Path 以技术方案 /breedingStandards/breedingManage 为准;若项目带 context-path 或网关前缀,须在请求 URL 中补上。


一、单元测试用例

说明:针对 无 Spring 容器 的工具方法,或对 Service 内分支 Mock Mapper、知识库 Client 后断言;覆盖状态校验、参数校验、非法组合拒绝(与需求矩阵一致)。

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置/Mock 测试步骤 预期结果
YZ-BZ-UT-001 状态校验 合法组合 单元测试 JUnit5 仅三种稳态 (publish,kb) 静态方法或枚举 遍历 publish∈{0,1}、kb∈{0,1} 合法:(0,0)(0,1)(1,1);非法:(1,0) 等其余组合;非法须 reject
YZ-BZ-UT-002 状态校验 禁止编辑 单元测试 JUnit5 仅未发布未同步可改 canEdit(0,0) true;(0,1)/(1,*) false 与需求矩阵及休药期模块一致
YZ-BZ-UT-003 状态校验 手动同步前置 单元测试 JUnit5 同步仅未发布未同步 canSyncKb(0,0) true;(0,1)(1,1) false 与需求矩阵一致
YZ-BZ-UT-004 状态校验 移出前置 单元测试 JUnit5 仅未发布已同步 canRemoveKb(0,1) true;其余 false 与矩阵一致
YZ-BZ-UT-005 状态校验 发布前置 单元测试 JUnit5 仅未发布已同步 canPublish(0,1) true;(0,0)(1,1) false 与矩阵一致
YZ-BZ-UT-006 状态校验 下架前置 单元测试 JUnit5 仅已发布 canOffline(1) true;publish=0 false 与矩阵一致
YZ-BZ-UT-007 状态校验 删除前置 单元测试 JUnit5 仅未发布可删 canDelete(0,0)(0,1) true;已发布 false 与需求 §4.4 一致;Service 对「未发布已同步」一键删含内置移出
YZ-BZ-UT-008 参数校验 标准名称长度 单元测试 JUnit5 1~20 传入「」「甲」「12」「…20字」「…21字」调用校验 空失败;1 字与 2 字及 20 字成功;21 字失败
YZ-BZ-UT-009 参数校验 简介长度 单元测试 JUnit5 选填 ≤50 null/空串通过;51 字失败 符合需求
YZ-BZ-UT-010 参数校验 标准类型编码 单元测试 JUnit5 有效资讯编码 Mock 子集含 001001~001004 空、999999 失败;001001 等合法编码通过 与技术方案 §2.3 一致
YZ-BZ-UT-011 附件校验 正文后缀白名单 单元测试 JUnit5 pdf/md/doc… validateContentSuffix("a.pdf") true;.exe false 与白名单一致
YZ-BZ-UT-012 附件校验 封面后缀 单元测试 JUnit5 jpg/jpeg/png .bmp false 与白名单一致
YZ-BZ-UT-013 Service 修改已发布抛业务异常 单元测试 JUnit5+Mockito 守卫分支 Mock 查库 publish=1 调用 update(...) 抛 ServiceException 或返回失败,不写库
YZ-BZ-UT-014 Service 同步成功写 kb 单元测试 JUnit5+Mockito 调知识库+更新状态 Mock KB 成功、Mapper update syncKb(id) kb_sync_status=1kb_doc_id 非空
YZ-BZ-UT-015 Service 同步失败不翻转状态 单元测试 JUnit5+Mockito KB 抛错 Mock KB 失败 syncKb(id) 仍为未同步,无 docId

二、接口测试用例

说明:HTTP 状态码一般为 200(若依多为 200 + Body 内 code);下列「预期」同时约定 Body:成功 code=200(或与项目统一的「操作成功」码);参数错 code≠200msg 可读;状态非法业务失败同理。鉴权:Header 携带登录后 Token/Cookie(与 RuoYi 一致);无权限返回 401 或业务无权限码(依项目)。

用例编号 接口路径(示例) HTTP 测试类型 测试工具 测试目的 前置条件 请求要点 预期结果
YZ-BZ-API-001 /breeding/standard/list GET 接口测试 Postman/curl 默认分页 Token;库内有数据 不传 pageSize rows≤20;默认排序倒序
YZ-BZ-API-002 /breeding/standard/list GET 接口测试 Postman keyword + type Token keyword=xxx&standardType=001003 结果均为免疫程序(编码精确)
YZ-BZ-API-003 /breeding/standard POST 接口测试 Postman 新增成功 Token;先 /common/upload 拿 url/path/name JSON Body 合法字段 code 成功;库中 publish=0,kb=0
YZ-BZ-API-004 /breeding/standard POST 接口测试 Postman 名称非法 Token 名称留空或超 21 字或缺其它必填 code 失败;无新记录
YZ-BZ-API-005 /breeding/standard/{id} GET 接口测试 Postman 详情字段 Token;有效 id Path id data 含 contentFileName、双维状态
YZ-BZ-API-006 /breeding/standard/{id} GET 接口测试 Postman 不存在 Token id=999999 404 或业务失败码
YZ-BZ-API-007 /breeding/standard PUT 接口测试 Postman 未发布可改 Token;草稿 id 合法 JSON 成功;详情字段更新
YZ-BZ-API-008 /breeding/standard PUT 接口测试 Postman 已发布禁止 Token;已发布 id 任意合法 Body 失败;库记录不变
YZ-BZ-API-009 /breeding/standard/{ids} DELETE 接口测试 Postman 未同步可删 Token;未同步 id DELETE 成功;记录不存在
YZ-BZ-API-010 /breeding/standard/{ids} DELETE 接口测试 Postman 已发布禁止 Token 已发布 id 失败
YZ-BZ-API-011 /breeding/standard/syncKb/{id} POST 接口测试 Postman 首次同步 Token;未发布未同步 id POST 成功;kb=1
YZ-BZ-API-012 /breeding/standard/syncKb/{id} POST 接口测试 Postman 已同步拒绝 Token;已同步 id POST 失败
YZ-BZ-API-013 /breeding/standard/removeKb/{id} POST 接口测试 Postman 移出 Token;未发布已同步 POST 成功;kb=0
YZ-BZ-API-014 /breeding/standard/publish/{id} POST 接口测试 Postman 发布 Token;未发布已同步 POST publish=1
YZ-BZ-API-015 /breeding/standard/publish/{id} POST 接口测试 Postman 未同步禁止 Token;未同步 id POST 失败
YZ-BZ-API-016 /breeding/standard/offline/{id} POST 接口测试 Postman 下架回流 Token;已发布 id POST publish=0;kb=1offline_time 有值;与需求下架语义一致
YZ-BZ-API-017 /breeding/standard/offline/{id} POST 接口测试 Postman 非已发布禁止 Token;草稿 id POST 失败
YZ-BZ-API-018 /breeding/standard/list GET 接口测试 Postman 未登录 无 Token GET 401 或跳转登录(依安全配置)
YZ-BZ-API-019 /breeding/standard POST 接口测试 Postman/自动化 breeding:standard:add 仅有 list 权限账号 POST 无权限失败

三、界面测试(UI)用例表

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
YZ-BZ-001 列表查询 默认分页与排序 功能测试 浏览器(后台) 默认每页 20 条、创建时间倒序 列表有若干条 1. 进入列表;2. 不改分页看第 1 页;3. 总条数>20 时翻第 2 页 默认每页 20;当前页按创建时间新→旧;>20 条时第 2 页有数据
YZ-BZ-002 列表查询 关键字-名称 功能测试 浏览器(后台) 名称模糊 OR 存在名称含唯一词「名称关键字A」的记录 关键字填「名称关键字A」→查询 结果含该记录
YZ-BZ-003 列表查询 关键字-简介 功能测试 浏览器(后台) 简介模糊 OR 存在简介含「简介词B」、名称不含该词的记录 关键字填「简介词B」→查询 结果含该记录
YZ-BZ-004 列表查询 标准类型筛选 功能测试 浏览器(后台) 类型精确匹配 存在不同类型各至少 1 条 类型选「免疫程序」→查询 结果均为免疫程序
YZ-BZ-005 列表查询 关键字+类型 功能测试 浏览器(后台) 组合条件 有同时满足的数据 输入关键字并选类型→查询 结果同时满足两条件
YZ-BZ-006 列表查询 重置条件 功能测试 浏览器(后台) 恢复列表 已设置查询条件 点「重置」或清空后再查 恢复默认条件下的列表展示
YZ-BZ-007 新增 完整合法提交 功能测试 浏览器(后台)+ 本地附件 正常新增主流程 新增→名称(合法长度)、类型、简介(可填)、上传正文、上传封面→提交 成功;列表为未发布、未同步;详情可下载正文/看封面
YZ-BZ-008 新增 简介与封面选填 功能测试 浏览器(后台)+ 本地附件 业务约束 新增→名称、类型、正文必填齐;简介空、封面不传→提交 成功;简介为空展示;无封面
YZ-BZ-009 新增 名称必填/超长 异常测试 浏览器(后台)+ 本地附件 约束:1~20 字 名称留空或超过 20 字→其余合法→提交 校验失败;不落库
YZ-BZ-010 新增 名称过长 异常测试 浏览器(后台)+ 本地附件 约束:≤20 字 名称 21 字→提交 校验失败
YZ-BZ-011 新增 类型必选 异常测试 浏览器(后台)+ 本地附件 约束 不选类型→提交 提示必选类型
YZ-BZ-012 新增 正文必填 异常测试 浏览器(后台) 约束 不上传正文→提交 提示需正文;不落库
YZ-BZ-013 新增 简介超长 异常测试 浏览器(后台)+ 本地附件 约束:≤50 字 简介≥51 字→提交 校验失败
YZ-BZ-014 新增 正文格式/大小 异常测试 浏览器(后台)+ 本地附件 白名单与≤30MB 准备非法后缀或>30MB 文件(若有) 作为正文上传或提交 拒绝或明确错误提示;不落库
YZ-BZ-015 新增 封面格式/大小 异常测试 浏览器(后台)+ 本地附件 白名单与≤10MB 非法后缀或>10MB 图片 上传封面 拒绝或错误提示;合法小图可成功
YZ-BZ-016 新增 单正文单封面 业务规则测试 浏览器(后台)+ 本地附件 单附件约束 正文上传两次(若 UI 为替换则确认仅保留最后一次) 最终仅一份正文;封面同理
YZ-BZ-017 详情 字段展示 功能测试 浏览器(后台) 名称/类型/简介/正文/封面及附件名 任意一条记录 点详情 字段齐全;正文有下载/预览入口;正文附件展示名与上传时原始文件名一致(或与产品约定展示规则一致)
YZ-BZ-018 详情 已发布只读 业务规则测试 浏览器(后台) 约束 已发布记录 打开详情 无保存类编辑或按钮不可用
YZ-BZ-019 详情 下架回流后可编辑 业务规则测试 浏览器(后台) 需求:下架回到未发布 已由「已发布」下架回流的数据 打开详情 可出现编辑入口(未发布+已同步);与 YZ-BZ-018 区分
YZ-BZ-020 修改 未发布未同步可改 功能测试 浏览器(后台)+ 本地附件 正常修改 未发布未同步记录 编辑→改名称/类型/简介/换正文或封面→保存 成功;列表/详情更新;仍为未同步(未点同步前)
YZ-BZ-021 修改 已同步禁止修改 功能测试 浏览器(后台) 已同步不可改 未发布已同步 尝试编辑保存 失败提示「知识库已同步状态不允许修改」;数据不变
YZ-BZ-022 修改 已发布不可改 业务规则测试 浏览器(后台) 约束 已发布记录 尝试编辑 无编辑入口或不可保存
YZ-BZ-023 修改 下架回流后可改 功能测试 浏览器(后台) 回流=未发布 下架回流后的记录 编辑→保存 允许修改;仍为未发布已同步直至再发布
YZ-BZ-024 修改 保存仍校验必填 异常测试 浏览器(后台)+ 本地附件 名称/类型/正文 未发布未同步 编辑清空名称或去掉正文→保存 校验失败
YZ-BZ-025 知识库 手动同步 集成测试 浏览器(后台)+ 知识库检索/管理端 未发布未同步首次入库 未发布未同步、正文已填 点「同步知识库」→确认 成功;状态为已同步
YZ-BZ-026 知识库 已同步不重复首次同步 业务规则测试 浏览器(后台) 约束 未发布已同步 查看操作区 「同步知识库」隐藏或不可用
YZ-BZ-027 知识库 已发布禁手动同步 业务规则测试 浏览器(后台) 需求 §4.6 已发布记录 查看操作区 无「同步知识库」(须先下架回到未发布)
YZ-BZ-028 知识库 移出知识库 集成测试 浏览器(后台)+ 知识库检索/管理端 未发布已同步 未发布已同步 点「移出知识库」→确认 成功;变为未同步;可再次同步
YZ-BZ-029 知识库 已发布无单独移出 业务规则测试 浏览器(后台) 约束 已发布 查看操作区 无「移出知识库」单独入口
YZ-BZ-030 知识库 同步失败提示 异常测试 浏览器(后台)+ 知识库不可用模拟(运维停服务/断网/错配;可选 DevTools Network) 异常 未发布未同步;临时使知识库不可用 点同步 明确失败提示;仍为未同步;恢复后可重试
YZ-BZ-031 发布下架 发布 功能测试 浏览器(后台) 已同步未发布可发布 未发布已同步 点「发布」→确认 成功;已发布
YZ-BZ-032 发布下架 未同步禁发布 业务规则测试 浏览器(后台) 约束 未发布未同步 点发布或看按钮 不可用或业务提示
YZ-BZ-033 发布下架 下架 集成测试 浏览器(后台)+ 知识库检索/管理端 对外下架、库内保留副本 已发布 点「下架」→确认 成功;业务侧 未发布+已同步;知识库 保留条目(对外不可检索/不可见以对接为准,可抽查)
YZ-BZ-034 发布下架 下架后可再发布 功能测试 浏览器(后台) 回流后可发布 下架回流后未发布已同步 点「发布」→确认 允许再次发布;成功后已发布
YZ-BZ-035 删除 未同步可删 功能测试 浏览器(后台) 正常 未发布未同步 删除→确认 成功;记录消失;原附件下载失效或 404
YZ-BZ-036 删除 未发布已同步须移出后删 功能测试 浏览器(后台) 需求 §4.4 下架回流后(未发布已同步) 直接删→确认 失败或提示先移出;先移出再删→成功
YZ-BZ-037 删除 已发布不可删 业务规则测试 浏览器(后台) 约束 已发布 尝试删除 无删除或提示先下架
YZ-BZ-038 删除 未发布已同步 集成测试 浏览器(后台)+ 知识库检索/管理端 须先移出或联动 未发布已同步 直接删(若开放)或先移出再删 符合需求:先移出再删成功,或一键删含移出且无知识库残留
YZ-BZ-039 端到端 主流程串联 集成测试 浏览器(后台)+ 本地附件 + 知识库检索/管理端 含下架回流再发布 可新建一条 新增→同步→编辑保存→发布→下架→直接再发布(或移出→编辑→同步→发布)→下架→移出→删除 各步状态与需求矩阵一致
YZ-BZ-040 权限 无权限/只读 权限测试 浏览器(后台);受限账号 越权防护 无本模块写权限账号 登录后看菜单/点新增或改 URL 无菜单或操作被拒
YZ-BZ-041 修改 已同步接口拒绝 异常测试 浏览器(后台)或 Postman §4.3 未发布已同步 直接调修改接口 返回业务错误;数据未变更
YZ-BZ-042 附件 删除后文件不可访问 功能测试 浏览器(后台);下载链接新标签验证 删库联动删文件 完成 YZ-BZ-035 或新建再删 删除前复制正文下载链接;删除后再访问该链接 不可下载或无权访问

覆盖对照

类别 用例编号 说明
UI 正常流程 YZ-BZ-001~008、017、020~021、023、025、028、031、033~034、035、039、042 列表、增改查、下架回流、同步、移出、发布、下架、删除、端到端
UI 异常/校验 009~016、030、041~042 字段、文件、知识库失败、推库一致性、删文件
UI 业务约束 018~019、022、024、026~027、029、032、036~038 需求矩阵与 §4.3~§4.8(无「已下架」稳态)
UI 权限 040 越权
单元测试 YZ-BZ-UT-001~015 状态机、参数与附件校验、Service 分支(Mock)
接口测试 YZ-BZ-API-001~019 CRUD、同步/移出/发布/下架、鉴权

修订记录

版本 说明
1.0 初版:页面可执行;对齐功能需求与技术方案(附件:URL、存储路径、正文附件名称;大小不入库;用例以 UI 验证为主)
1.1 用例表增加 测试类型测试工具 列;文首补充类型说明
1.2 增加 单元测试接口测试;覆盖对照扩展
1.3 章节顺序调整为:一、单元测试二、接口测试三、界面测试(UI);文首三部分说明同步
1.4 对齐 养殖标准管理功能需求.md:下架回流 未发布+已同步;下架≠移出;合法组合不含「已下架」稳态;YZ-BZ-API-016、UT/UI 预期同步修订
1.5 标准类型改为资讯类别编码(001001001004);同步 UT-010、API-002 及 UI 类型筛选