西藏巴青项目

综合牧业知识库测试用例.md 16KB

综合牧业知识库 — 测试用例

依据:综合牧业知识库管理功能需求.md综合牧业知识库技术方案.md
接口 Base Path/techServices/knowledge;鉴权与若依一致(Cookie / Token)。

通用前置(无特殊说明):具备本模块权限的账号已登录(techService:knowledge:list|query|add|edit|remove|syncKb|removeKb)。biz_livestock_knowledge 宜预置(del_flag=0):

样本 标题 主题 入库状态
K1 春季饲喂要点 1 饲养管理 未入库(kb_sync_status=0
K2 口蹄疫防控手册 2 疫病管理 未入库
K3 牧场规划范例 4 牧场设计 已入库kb_sync_status=1kb_doc_id 非空)
K4 补贴政策解读2024 5 政策解读 已入库(用于移出后编辑链路)

合法 Body 片段knowledgeTitle=测试知识标题knowledgeTopic=1introduction=简介不超过五十字contentFileUrl/contentFilePath/contentFileName 来自 /common/upload(后缀 pdf 等白名单,≤30MB)。

界面(UI)测试Playwright + Chromiumchannel: 'chrome' 使用本机 Google Chrome);菜单路径以系统配置为准,示例「牧业养殖科技服务 → 综合牧业知识库」。


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-ZHMYZSK-UT-001 参数校验 知识标题长度 单元测试 JUnit5 §5.2 trim 后「」、1 字、20 字、21 字 空/21 失败;1~20 通过
ZCZX-ZHMYZSK-UT-002 参数校验 知识简介长度 单元测试 JUnit5 §5.2 null/空串;50 字;51 字 空通过;51 字失败
ZCZX-ZHMYZSK-UT-003 参数校验 知识主题枚举 单元测试 JUnit5 §2.2 knowledgeTopic 为 0、6、1~5 0/6 失败;1~5 通过
ZCZX-ZHMYZSK-UT-004 参数校验 正文后缀白名单 单元测试 JUnit5 §5.2 a.pdfreadme.mdslides.pptx 通过;.ppt.exe 失败 与需求一致
ZCZX-ZHMYZSK-UT-005 参数校验 正文必填 单元测试 JUnit5 §5.2 contentFileUrl/contentFilePath/contentFileName 失败
ZCZX-ZHMYZSK-UT-006 入库状态 仅 0/1 合法 单元测试 JUnit5 §2.3 校验 kb_sync_status 为 -1、2、0、1 仅 0、1 为业务合法值
ZCZX-ZHMYZSK-UT-007 状态规则 可编辑 单元测试 JUnit5 §6 canEdit(kb=0)canEdit(kb=1) 仅未入库 true
ZCZX-ZHMYZSK-UT-008 状态规则 可删除 单元测试 JUnit5 §6 canDelete(kb=0)canDelete(kb=1) 仅未入库 true
ZCZX-ZHMYZSK-UT-009 状态规则 可同步 单元测试 JUnit5 §6 canSyncKb(0)canSyncKb(1) 仅未入库 true
ZCZX-ZHMYZSK-UT-010 状态规则 可移出 单元测试 JUnit5 §6 canRemoveKb(1)canRemoveKb(0) 仅已入库 true
ZCZX-ZHMYZSK-UT-011 Service 新增落库默认值 单元测试 JUnit5+Mockito §5.2 Mock Mapper insert insert 合法行 kb_sync_status=0kb_doc_id 空;del_flag=0
ZCZX-ZHMYZSK-UT-012 Service 已入库禁止修改 单元测试 JUnit5+Mockito §5.3 Mock 查库 K3(kb=1) update ServiceException;msg 含移出提示
ZCZX-ZHMYZSK-UT-013 Service 未入库修改不推库 单元测试 JUnit5+Mockito §4.3 Mock K1;Mock KB update 成功 仅 Mapper update;调用 uploadFileByUrl
ZCZX-ZHMYZSK-UT-014 Service 同步成功写状态 单元测试 JUnit5+Mockito §5.6 Mock KB 返回 DOC-1 syncKb(id) kb_sync_status=1kb_doc_id=DOC-1
ZCZX-ZHMYZSK-UT-015 Service 同步失败不改状态 单元测试 JUnit5+Mockito §5.6 Mock KB 抛错 syncKb 仍为 kb_sync_status=0;无 docId
ZCZX-ZHMYZSK-UT-016 Service 重复同步拒绝 单元测试 JUnit5+Mockito §5.6 Mock K3 syncKb 失败;msg 含「已入库」
ZCZX-ZHMYZSK-UT-017 Service 移出成功清 docId 单元测试 JUnit5+Mockito §5.7 Mock K3;Mock deleteFile 成功 removeKb kb_sync_status=0kb_doc_id
ZCZX-ZHMYZSK-UT-018 Service 移出失败保持状态 单元测试 JUnit5+Mockito §5.7 Mock deleteFile 失败 removeKb 仍为已入库;docId 保留
ZCZX-ZHMYZSK-UT-019 Service 未入库移出拒绝 单元测试 JUnit5+Mockito §5.7 Mock K1 removeKb 失败;msg 含「仅已入库」
ZCZX-ZHMYZSK-UT-020 Service 已入库禁止删除 单元测试 JUnit5+Mockito §5.5 Mock K3 removeByIds 失败
ZCZX-ZHMYZSK-UT-021 Service 未入库逻辑删除 单元测试 JUnit5+Mockito §5.5 Mock K1 removeByIds del_flag=2;删附件方法被调用
ZCZX-ZHMYZSK-UT-022 Mapper 列表 SQL 条件 单元测试 JUnit5 §5.1 审阅 XML 检查 selectBizLivestockKnowledgeList del_flag=0;keyword 标题/简介 OR;knowledge_topic=kb_sync_status=ORDER BY create_time DESC

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-ZHMYZSK-API-001 列表 默认分页排序 接口测试 Postman §5.1 有多条样本 GET /list code=200;≤20 条;createTime 倒序
ZCZX-ZHMYZSK-API-002 列表 关键字-标题 接口测试 Postman §2.5 有 K1 keyword=饲喂 含 K1
ZCZX-ZHMYZSK-API-003 列表 关键字-简介 接口测试 Postman §2.5 K2 简介含唯一词 keyword=该唯一词(标题不含) 含 K2
ZCZX-ZHMYZSK-API-004 列表 主题精确筛选 接口测试 Postman §2.5 有主题 2 数据 knowledgeTopic=2 均为疫病管理
ZCZX-ZHMYZSK-API-005 列表 入库状态筛选 接口测试 Postman §2.5 有 K3 kbSyncStatus=1 仅已入库
ZCZX-ZHMYZSK-API-006 列表 组合筛选 接口测试 Postman §2.5 有匹配数据 keyword+knowledgeTopic+kbSyncStatus 同时满足
ZCZX-ZHMYZSK-API-007 列表 不含已删除 接口测试 Postman §2.4 某 id 已 del_flag=2 GET /list 无该 id
ZCZX-ZHMYZSK-API-008 新增 合法提交 接口测试 Postman §5.2 已上传 pdf POST 合法 Body code=200kbSyncStatus=0
ZCZX-ZHMYZSK-API-009 新增 标题空/超长 接口测试 Postman §5.2 已登录 标题 "" 或 21 字 失败;不落库
ZCZX-ZHMYZSK-API-010 新增 主题非法 接口测试 Postman §5.2 已登录 knowledgeTopic=9 失败
ZCZX-ZHMYZSK-API-011 新增 简介超长 接口测试 Postman §5.2 已登录 简介 51 字 失败
ZCZX-ZHMYZSK-API-012 新增 缺正文附件 接口测试 Postman §5.2 已登录 contentFilePath 失败;msg 含上传提示
ZCZX-ZHMYZSK-API-013 详情 有效 id 接口测试 Postman §5.4 有 K1 GET /{id} contentFileNamekbSyncStatus
ZCZX-ZHMYZSK-API-014 详情 不存在/已删 接口测试 Postman 异常 已登录 id=999999 或已删 id 失败或 data
ZCZX-ZHMYZSK-API-015 修改 未入库成功 接口测试 Postman §5.3 有 K1 PUTintroduction 成功;仍为未入库
ZCZX-ZHMYZSK-API-016 修改 已入库禁止 接口测试 Postman §5.3 有 K3 PUT 任意合法 Body 失败;库不变
ZCZX-ZHMYZSK-API-017 删除 未入库逻辑删 接口测试 Postman §5.5 新建未入库行 DELETE /{id} 成功;列表不可见
ZCZX-ZHMYZSK-API-018 删除 已入库禁止 接口测试 Postman §5.5 有 K3 DELETE /{id} 失败
ZCZX-ZHMYZSK-API-019 同步 未入库成功 接口测试 Postman §5.6 有 K2;KB 可用 POST /syncKb/{id} kbSyncStatus=1kbDocId 非空
ZCZX-ZHMYZSK-API-020 同步 已入库拒绝 接口测试 Postman §5.6 有 K3 再次 syncKb 失败;msg 含「已入库」
ZCZX-ZHMYZSK-API-021 同步 KB 失败不改态 接口测试 Postman §5.6 停 KB 或 Mock 失败 syncKb 未入库 id 失败;库仍为 0
ZCZX-ZHMYZSK-API-022 移出 已入库成功 接口测试 Postman §5.7 有 K4 或 K3 POST /removeKb/{id} kbSyncStatus=0kbDocId
ZCZX-ZHMYZSK-API-023 移出 未入库拒绝 接口测试 Postman §5.7 有 K1 removeKb 失败
ZCZX-ZHMYZSK-API-024 移出 KB 失败保持态 接口测试 Postman §5.7 KB 删除失败 removeKb 已入库 id 失败;仍为已入库
ZCZX-ZHMYZSK-API-025 端到端 运营主流程 接口测试 Postman §4.2 已登录;KB 可用 POST新增→syncKbremoveKbPUT改标题→syncKbDELETE 各步 code=200;最终列表无该条
ZCZX-ZHMYZSK-API-026 端到端 已入库维护禁忌 接口测试 Postman §4.2 有 K3 直接 PUTDELETE 均失败;须先移出
ZCZX-ZHMYZSK-API-027 鉴权 未登录 接口测试 curl 安全 无 Token GET /list 401 或未登录
ZCZX-ZHMYZSK-API-028 权限 无新增权限 接口测试 Postman §6 仅 list 权限账号 POST / 合法 Body 无权限失败
ZCZX-ZHMYZSK-API-029 权限 无 syncKb 权限 接口测试 Postman §6 无 syncKb POST /syncKb/1 无权限失败
ZCZX-ZHMYZSK-API-030 响应 失败 msg 可读 接口测试 Postman §8 已登录 触发已入库编辑、重复同步、未入库移出 msg 与需求 §8 语义一致

三、界面测试用例(UI)

测试工具Playwright + Chromiumchannel: 'chrome' 使用本机 Google Chrome)。

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-ZHMYZSK-UI-001 列表 页面与列展示 UI 测试 Playwright+Chrome §5.1 已登录;有样本 进入「综合牧业知识库」 标题「综合牧业知识列表」;列含标题、主题、简介、知识文件、入库状态、操作
ZCZX-ZHMYZSK-UI-002 列表 关键字筛选 UI 测试 Playwright+Chrome §2.5 有 K1 关键词填「饲喂」→搜索 含 K1
ZCZX-ZHMYZSK-UI-003 列表 主题筛选 UI 测试 Playwright+Chrome §2.5 有主题 2 数据 知识主题选「疫病管理」→搜索 仅主题 2 行
ZCZX-ZHMYZSK-UI-004 列表 入库状态筛选 UI 测试 Playwright+Chrome §2.5 有 K3 入库状态选「已入库」→搜索 仅已入库行
ZCZX-ZHMYZSK-UI-005 列表 重置 UI 测试 Playwright+Chrome §5.1 已设筛选 搜索→点「重置」 条件清空;列表恢复默认
ZCZX-ZHMYZSK-UI-006 新增 合法提交 UI 测试 Playwright+Chrome §5.2 有 add 权限 新增→填标题(≤20)、选主题、简介、上传 pdf→确定 成功提示;列表新行「未入库」
ZCZX-ZHMYZSK-UI-007 新增 标题必填/超长 UI 测试 Playwright+Chrome §5.2 打开新增弹窗 标题留空或 21 字→确定 前端校验失败;不提交
ZCZX-ZHMYZSK-UI-008 新增 主题必选 UI 测试 Playwright+Chrome §5.2 打开新增 不选知识主题→确定 提示必选
ZCZX-ZHMYZSK-UI-009 新增 简介超长 UI 测试 Playwright+Chrome §5.2 打开新增 简介输入 51 字→确定 校验失败
ZCZX-ZHMYZSK-UI-010 新增 未上传正文 UI 测试 Playwright+Chrome §5.2 打开新增 填标题主题不传文件→确定 提示须上传知识内容
ZCZX-ZHMYZSK-UI-011 新增 附件格式/大小 UI 测试 Playwright+Chrome §5.2 打开新增 .exe 或 >30MB(若控件可测) 上传失败或提交前拦截
ZCZX-ZHMYZSK-UI-012 查看 只读详情 UI 测试 Playwright+Chrome §5.4 任意行 点击查看 展示标题、主题、简介、文件名、入库状态;无保存按钮
ZCZX-ZHMYZSK-UI-013 操作列 未入库按钮集 UI 测试 Playwright+Chrome §6 K1 行 查看操作列 有查看、编辑、删除、同步知识库;无移出
ZCZX-ZHMYZSK-UI-014 操作列 已入库按钮集 UI 测试 Playwright+Chrome §6 K3 行 查看操作列 有查看、移出知识库;无编辑、删除、同步
ZCZX-ZHMYZSK-UI-015 编辑 未入库修改 UI 测试 Playwright+Chrome §5.3 K1 行 编辑→改简介→确定 列表/详情已更新;仍未入库
ZCZX-ZHMYZSK-UI-016 编辑 已入库无入口 UI 测试 Playwright+Chrome §5.3 K3 行 查找编辑入口 无「编辑」或点击无效
ZCZX-ZHMYZSK-UI-017 同步 确认与成功 UI 测试 Playwright+Chrome §5.6 K2 未入库;KB 可用 同步知识库→确认 成功提示;行变为已入库
ZCZX-ZHMYZSK-UI-018 同步 已入库不可再同步 UI 测试 Playwright+Chrome §5.6 K3 行 尝试同步(若误显) 无按钮或提示已入库
ZCZX-ZHMYZSK-UI-019 移出 确认与成功 UI 测试 Playwright+Chrome §5.7 K4 已入库 移出知识库→确认 成功;行变未入库;出现编辑/删除/同步
ZCZX-ZHMYZSK-UI-020 移出 未入库无移出 UI 测试 Playwright+Chrome §5.7 K1 行 查看操作列 无「移出知识库」
ZCZX-ZHMYZSK-UI-021 删除 未入库二次确认 UI 测试 Playwright+Chrome §5.5 新建未入库行 删除→确认(文案含标题) 行从列表消失
ZCZX-ZHMYZSK-UI-022 删除 已入库禁止 UI 测试 Playwright+Chrome §5.5 K3 行 尝试删除 无删除或提示先移出
ZCZX-ZHMYZSK-UI-023 端到端 移出-改-再入库 UI 测试 Playwright+Chrome §4.2 已入库样本 移出→编辑改标题→保存→同步 各步成功;最终已入库且标题已变
ZCZX-ZHMYZSK-UI-024 端到端 新增到入库 UI 测试 Playwright+Chrome §4.2 有 add/sync 权限 新增完整条目→同步知识库 列表显示已入库
ZCZX-ZHMYZSK-UI-025 权限 无新增按钮 UI 测试 Playwright+Chrome §6 仅 list 权限账号 进入列表 无「新增」或禁用
ZCZX-ZHMYZSK-UI-026 异常 同步失败提示 UI 测试 Playwright+Chrome §5.6 临时停 KB 服务 对未入库行点同步→确认 失败提示含原因;仍为未入库
ZCZX-ZHMYZSK-UI-027 异常 移出失败提示 UI 测试 Playwright+Chrome §5.7 KB 删除接口不可用 对已入库行移出 失败提示;仍为已入库

四、用例统计与执行建议

分类 数量 工具
单元测试 22 JUnit5(+ Mockito 测 Service)
接口测试 30 Postman / MockMvc
界面测试 27 Playwright + Google Chrome

MockMvc 映射:API-001~030 可落库为 BizLivestockKnowledgeControllerTest;UT-011~021 为 BizLivestockKnowledgeServiceImplTest + LivestockKnowledgeValidationTest

Playwright 示例配置(摘录)

// playwright.config.js 片段
use: {
  channel: 'chrome',
  locale: 'zh-CN',
  baseURL: process.env.ADMIN_BASE_URL, // 如 http://localhost:80
},

优先级:P0=API-008/015/019/022/025、UI-006/013/014/017/019/024;P1=状态拒绝类与 KB 失败类;P2=权限与边界长度。


五、修订记录

版本 说明
1.0 初稿:覆盖入库状态机、校验、同步/移出/删改禁忌;UT 22 + API 30 + UI 27
1.1 2026-05-20:正文白名单 pdf/md/doc/docx/xls/xlsx/pptx(不含 ppt);ZCZX-ZHMYZSK-UT-004 预期同步