西藏巴青项目

设备实施作业标准管理测试用例.md 17KB

设备实施作业标准管理 — 测试用例

依据:设备实施作业标准管理功能需求.md设备实施作业标准管理技术方案.md
接口 Base Path(示例)/breedingStandards/equipmentOperation;若含 context-path 或网关前缀须补齐。鉴权与若依一致(Cookie / Token)。

通用前置:具备本模块菜单与按钮权限;正文白名单后缀:pdf/md/doc/docx/xls/xlsx/pptx(≤30MB);封面:jpg/jpeg/png(≤10MB)。biz_information_category 已种子化;标准类型编码:001007 设备操作、001008 设备保养、001009 设备排障、001010 设备维修(parentCode=001categoryType=3)。

界面测试(UI):借助 Playwright 启动 Chromium(与 Google Chrome 同源内核,可配置 channel: 'chrome' 调用本机谷歌浏览器)模拟真实用户操作。


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
SS-BZ-UT-001 状态机 合法状态组合 单元测试 JUnit5 仅三种稳态可持久化 校验 (publish_status,kb_sync_status) 为 (0,0)(0,1)(1,1) 均为合法;(1,0) 等其余组合拒绝
SS-BZ-UT-002 状态机 编辑守卫 单元测试 JUnit5 仅未发布未同步可改 canEdit(0,0) true;(0,1)/(1,*) false 与需求矩阵一致
SS-BZ-UT-003 状态机 手动同步守卫 单元测试 JUnit5 仅未发布未同步 canSyncKb(0,0) true;其余 false 与矩阵一致
SS-BZ-UT-004 状态机 移出守卫 单元测试 JUnit5 仅未发布已同步 canRemoveKb(0,1) true;其余 false 与矩阵一致
SS-BZ-UT-005 状态机 发布守卫 单元测试 JUnit5 仅未发布已同步 canPublish(0,1) true;(0,0)(1,1) false 与矩阵一致
SS-BZ-UT-006 状态机 下架守卫 单元测试 JUnit5 仅已发布 canOffline(1) true;publish=0 false 与矩阵一致
SS-BZ-UT-007 状态机 删除守卫 单元测试 JUnit5 已发布禁删;未同步可删 canDelete 与 §4.4 一致;(0,1) 与「先移出或联动删库」实现一致 无越权删除路径
SS-BZ-UT-008 参数校验 标准名称长度 单元测试 JUnit5 1~20 字 空、单字、2 字、20 字、21 字调用校验 空与 21 字失败;1~20 字通过
SS-BZ-UT-009 参数校验 简介字数 单元测试 JUnit5 选填 ≤50 null/空通过;51 字失败 符合需求
SS-BZ-UT-010 参数校验 标准类型 单元测试 JUnit5 须为有效资讯编码 Mock 类别子集含 001007~001010 传入空、999999、未在集合内的编码 失败;合法编码通过
SS-BZ-UT-011 附件校验 正文后缀 单元测试 JUnit5 白名单 a.pdfreadme.mdslides.pptx 通过;.ppt.exe 拒绝 与需求一致
SS-BZ-UT-012 附件校验 封面后缀 单元测试 JUnit5 白名单 .jpg 通过;.bmp 拒绝 与需求一致
SS-BZ-UT-013 Service 更新已发布 单元测试 JUnit5+Mockito 禁止修改 Mock publish=1 调用 update 业务失败;不写库
SS-BZ-UT-014 Service 同步成功 单元测试 JUnit5+Mockito 翻转 kb Mock KB 成功 syncKb(id) kb_sync_status=1kb_doc_id 非空
SS-BZ-UT-015 Service 同步失败 单元测试 JUnit5+Mockito 状态不翻转 Mock KB 失败 syncKb(id) 仍为未同步
SS-BZ-UT-016 Service 已同步修改拒绝 单元测试 JUnit5+Mockito §4.3 Mock publish=0,kb=1 update 抛业务异常;无脏数据
SS-BZ-UT-017 Service 下架成功 单元测试 JUnit5+Mockito 回流语义 Mock KB 下架成功 offline(id) publish=0kb=1;保留 kb_doc_id
SS-BZ-UT-018 Service 移出成功 单元测试 JUnit5+Mockito 置未同步 Mock KB 删除成功 removeKb(id) kb=0;清空 kb_doc_id
SS-BZ-UT-019 Service 发布成功 单元测试 JUnit5+Mockito 上架 Mock KB(若发布需通知) publish(id) publish=1
SS-BZ-UT-020 Service 未同步保存不调 KB 单元测试 JUnit5+Mockito §4.3 仅本地 publish=0,kb=0 update 成功路径 Mock 验证 未调用 知识库更新接口

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
SS-BZ-API-001 列表 默认分页排序 接口测试 Postman/curl 默认 pageSize 与倒序 已登录;有数据 GET /equipment/workStandard/list rows≤默认 pageSize(20);按创建时间倒序
SS-BZ-API-002 列表 关键字 OR 接口测试 Postman 名称/简介模糊 已登录 keyword= 唯一词 命中名称或简介
SS-BZ-API-003 列表 类型筛选 接口测试 Postman 精确匹配 已登录 standardType=001007(或 001008/001009/001010) 返回均为对应编码
SS-BZ-API-004 列表 组合查询 接口测试 Postman 与关系 已登录 keyword+standardType 同时满足
SS-BZ-API-005 新增 合法提交 接口测试 Postman/Swagger 正常新增 已登录;/common/upload 取 url/path/name POST /equipment/workStandard code 成功;publish=0,kb=0
SS-BZ-API-006 新增 名称非法 接口测试 Postman 异常:长度 已登录 名称缺失或超过 20 字 失败;无新记录
SS-BZ-API-007 新增 类型非法 接口测试 Postman 异常:编码 已登录 standardType=999999 失败;提示含「标准类型无效」
SS-BZ-API-008 新增 简介超长 接口测试 Postman 异常:≤50 已登录 introduction 超长 失败
SS-BZ-API-009 详情 有效 id 接口测试 Postman 字段完整 已登录 GET /equipment/workStandard/{id} 含 contentFileName、双维状态
SS-BZ-API-010 详情 无效 id 接口测试 Postman 异常 已登录 不存在 id 404 或业务失败
SS-BZ-API-011 修改 未发布成功 接口测试 Postman 正常 已登录;publish=0 PUT /equipment/workStandard 成功
SS-BZ-API-012 修改 已发布拒绝 接口测试 Postman 业务约束 已登录;publish=1 PUT 失败;数据不变
SS-BZ-API-013 删除 未同步 接口测试 Postman 允许删 已登录;kb=0 DELETE /equipment/workStandard/{ids} 成功
SS-BZ-API-014 删除 已发布 接口测试 Postman 禁止 已登录;publish=1 DELETE 失败
SS-BZ-API-015 删除 未发布已同步 接口测试 Postman §4.4 已登录;0+1 DELETE(视实现) 失败提示先移出,或联动删库成功且无孤儿
SS-BZ-API-016 同步 首次同步 接口测试 Postman 正常 已登录;0+0 POST /equipment/workStandard/syncKb/{id} kb=1
SS-BZ-API-017 同步 重复同步 接口测试 Postman 约束 已登录;0+1 POST .../syncKb/{id} 失败
SS-BZ-API-018 移出 成功 接口测试 Postman 正常 已登录;0+1 POST /equipment/workStandard/removeKb/{id} kb=0
SS-BZ-API-019 发布 成功 接口测试 Postman 正常 已登录;0+1 POST /equipment/workStandard/publish/{id} publish=1
SS-BZ-API-020 发布 未同步 接口测试 Postman 约束 已登录;0+0 POST .../publish/{id} 失败
SS-BZ-API-021 下架 成功 接口测试 Postman 回流 已登录;publish=1 POST /equipment/workStandard/offline/{id} publish=0;kb=1
SS-BZ-API-022 下架 非已发布 接口测试 Postman 约束 已登录;草稿 POST .../offline/{id} 失败
SS-BZ-API-023 鉴权 未登录 接口测试 curl 安全 无凭证 GET .../list 401 或跳转登录
SS-BZ-API-024 权限 无写权限 接口测试 Postman 越权 仅 list 权限 POST /equipment/workStandard 无权限失败
SS-BZ-API-025 响应结构 失败可读 接口测试 Postman §6 错误约定 已登录 故意触发校验失败(如名称超长) Body 含可读 msgcode 与项目失败约定一致
SS-BZ-API-026 附件 超限(可选) 接口测试 Postman §4.1 大小 准备略超 30MB 正文(环境允许) 上传后提交或调服务端校验 返回明确「大小超限」类提示;不落库

三、界面测试用例(UI)

测试工具Playwright + Chromium / channel: 'chrome'(谷歌浏览器);步骤可映射 page.gotofillclicksetInputFilesexpect

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
SS-BZ-UI-001 列表 默认分页排序 UI 测试 Playwright+Chrome/Chromium 正常展示 已登录;数据>20 打开设备实施作业标准列表页 每页默认 20;创建时间新在前
SS-BZ-UI-002 列表 关键字-名称 UI 测试 Playwright+Chrome/Chromium 正常查询 存在名称含关键词记录 输入关键字→查询 表格含目标行
SS-BZ-UI-003 列表 关键字-简介 UI 测试 Playwright+Chrome/Chromium OR 逻辑 简介含词、名称不含 输入该词→查询 命中
SS-BZ-UI-004 列表 类型筛选 UI 测试 Playwright+Chrome/Chromium 精确筛选 四类类型均有样本数据 选「设备排障」等某一类型→查询 类型列均为所选类型
SS-BZ-UI-005 列表 组合与重置 UI 测试 Playwright+Chrome/Chromium 恢复条件 已筛选 关键字+类型→查询→重置 恢复默认列表
SS-BZ-UI-006 列表 状态与按钮 UI 测试 Playwright+Chrome/Chromium 业务约束可见性 三种状态样本各行一条 检查状态标签与操作按钮 与矩阵一致(如同步仅 0+0)
SS-BZ-UI-007 新增 完整合法 UI 测试 Playwright+Chrome/Chromium 正常主流程 已登录 新增→名称、类型→上传正文封面→提交 成功;未发布未同步
SS-BZ-UI-008 新增 简介封面选填 UI 测试 Playwright+Chrome/Chromium 选填规则 已登录 简介空、不传封面;其余合法→提交 成功
SS-BZ-UI-009 新增 名称非法 UI 测试 Playwright+Chrome/Chromium 异常校验 已登录 名称空或超过 20 字→提交 提示失败;无新记录
SS-BZ-UI-010 新增 简介超长 UI 测试 Playwright+Chrome/Chromium 异常校验 已登录 简介>50 字→提交 失败
SS-BZ-UI-011 新增 正文缺失/非法 UI 测试 Playwright+Chrome/Chromium 异常 已登录 不上传正文或非法后缀→提交 失败提示
SS-BZ-UI-012 新增 封面非法 UI 测试 Playwright+Chrome/Chromium 异常 已登录 上传非白名单图片→提交 失败
SS-BZ-UI-013 详情 字段完整 UI 测试 Playwright+Chrome/Chromium 正常查看 任意行 点详情 名称类型简介正文文件名封面齐全
SS-BZ-UI-014 详情 已发布只读 UI 测试 Playwright+Chrome/Chromium 约束 已发布 开详情 无保存类编辑
SS-BZ-UI-015 详情 下架回流只读 UI 测试 Playwright+Chrome/Chromium 回流语义 已下架数据 开详情 未发布已同步;编辑入口
SS-BZ-UI-016 修改 未同步保存 UI 测试 Playwright+Chrome/Chromium 正常 0+0 编辑→保存 成功;仍为未同步
SS-BZ-UI-017 修改 已同步禁止修改 UI 测试 Playwright+Chrome/Chromium §4.3 0+1 尝试编辑保存 失败提示已同步不可改
SS-BZ-UI-018 修改 已发布禁止 UI 测试 Playwright+Chrome/Chromium 约束 已发布 尝试编辑 不可保存
SS-BZ-UI-019 知识库 手动同步 UI 集成 Playwright+Chrome/Chromium 首次入库 0+0 点同步→确认 变已同步
SS-BZ-UI-020 知识库 已同步无同步钮 UI 测试 Playwright+Chrome/Chromium 矩阵 0+1 查看操作区 无可用「同步」
SS-BZ-UI-021 知识库 已发布无同步 UI 测试 Playwright+Chrome/Chromium 矩阵 已发布 查看操作区 无同步
SS-BZ-UI-022 知识库 移出 UI 集成 Playwright+Chrome/Chromium 正常 0+1 移出→确认 变未同步
SS-BZ-UI-023 知识库 同步失败 UI 测试 Playwright+Chrome/Chromium 异常 KB 不可用;0+0 点同步 失败提示;仍为未同步
SS-BZ-UI-024 发布下架 发布 UI 测试 Playwright+Chrome/Chromium 正常 0+1 发布→确认 已发布
SS-BZ-UI-025 发布下架 未同步禁发 UI 测试 Playwright+Chrome/Chromium 约束 0+0 尝试发布 不可用或提示
SS-BZ-UI-026 发布下架 下架再发布 UI 集成 Playwright+Chrome/Chromium 闭环 已发布 下架→再发布 先未发布已同步;再已发布
SS-BZ-UI-027 删除 未同步 UI 测试 Playwright+Chrome/Chromium 正常 0+0 删除→确认 行消失
SS-BZ-UI-028 删除 已发布禁删 UI 测试 Playwright+Chrome/Chromium 约束 已发布 尝试删除 不可删或提示下架
SS-BZ-UI-029 删除 已同步须移出 UI 测试 Playwright+Chrome/Chromium §4.4 0+1 直接删失败则移出再删 最终成功;KB 无残留
SS-BZ-UI-030 附件 删除后不可下载 UI 测试 Playwright+Chrome/Chromium 清理 删除前复制下载链 删除后再访问链接 不可访问
SS-BZ-UI-031 端到端 全链路 UI 集成 Playwright+Chrome/Chromium 状态机串联 可新建 新增→同步→改→发布→下架→改→再发布→下架→移出→删 各步状态符合矩阵
SS-BZ-UI-032 权限 只读账号 UI 测试 Playwright+Chrome/Chromium 越权 无写权限 登录后进模块 无新增/编辑或拒绝
SS-BZ-UI-033 类型 四类编码 UI 测试 Playwright+Chrome/Chromium 覆盖 001007~001010 已登录 下拉选项来自资讯类别接口;各类型筛选 展示名与资讯类别一致;筛选精确
SS-BZ-UI-034 新增 名称过长 UI 测试 Playwright+Chrome/Chromium §4.1 上限 已登录 名称 21 字(或超上限)→提交 校验失败;无新记录
SS-BZ-UI-035 列表/操作 已发布无移出 UI 测试 Playwright+Chrome/Chromium §4.7 前置 已发布行 查看操作区 无「移出知识库」(须先下架)
SS-BZ-UI-036 修改 替换正文与封面 UI 测试 Playwright+Chrome/Chromium 替换附件 未发布任意状态 编辑→更换正文与封面→保存 成功;新文件名展示;旧链接失效
SS-BZ-UI-037 修改 未同步保存 UI 测试 Playwright+Chrome/Chromium §4.3 不自动推库 0+0;KB 可观测 修改保存 业务成功;KB 无新增/更新
SS-BZ-UI-038 发布下架 下架失败提示 UI 测试 Playwright+Chrome/Chromium 异常可重试 已发布;KB 不可用 点下架→确认 失败提示;仍为已发布;恢复后可重试

Playwright 与谷歌浏览器

  • 安装:npm i -D @playwright/testnpx playwright install chromium 或配合 channel: 'chrome'
  • 配置:use: { channel: 'chrome', headless: false } 使用本机 Google Chrome 窗口回放。
  • 登录:推荐 storageState 复用会话。

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 014~019 001~005、009、011、013、016、018~019、021 001~008、013~017、019、022、024、026~027、031、033、036
异常流程 008~012、015~016 006~008、010、012、014~015、017、020、022~026 009~012、023、025、028~030、034、038
业务约束/矩阵 001~007、020 012、014~022、025 006、014~015、018、020~021、025~029、032、035、037

功能需求覆盖自查(追溯)

需求章节 要点 主要对应用例
§4.1 新增 字段、初始状态 UT-008~012;API-005~008、026;UI-007~012、034
§4.2 列表 关键字、类型、分页、状态列 API-001~004;UI-001~006
§4.3 修改 推库与不推库 UT-013、016、020;API-011~012;UI-016~018、037
§4.4 删除 文件与 KB UT-007;API-013~015;UI-027~030
§4.5 详情 只读/回流 API-009~010;UI-013~015
§4.6~4.8 同步、移出、发布下架 UT-003~006、014~019;API-016~022;UI-019~026、038
§5 矩阵 操作可用性 UT-001~007;UI-006、031
§6 错误约定 msg 可读 API-025

说明:§7 非功能未逐条展开;§4.1 名称唯一若未定需补用例。


修订记录

日期 说明
初稿:对齐功能需求与技术方案;SS-BZ 编号;四类标准类型
标准名称校验由 3~20 调整为 1~20 字:同步 SS-BZ-UT-008、API-006/025、UI-009 等步骤与预期
2026-05-20 标准类型由数字枚举改为资讯类别编码(varchar);同步 UT-010、API-003/007、UI-033 及通用前置
2026-05-20 正文白名单调整为 pdf/md/doc/docx/xls/xlsx/pptx(不含 ppt);SS-BZ-UT-011 补充 mdpptx 通过及 .ppt 拒绝