西藏巴青项目

项目与补贴-补贴管理测试用例.md 17KB

项目与补贴 — 补贴 — 测试用例

依据:项目与补贴-补贴功能需求.md项目与补贴-补贴技术方案.md
接口 Base Path(示例)/policy/projectSubsidy;若含 context-path 或网关前缀须补齐。鉴权与若依一致(Cookie / Token)。

通用前置(无特殊说明):具备本模块菜单与按钮权限的账号已登录;可先调 POST /common/upload 取得明细附件/封面的 urlfileName(存储路径)、originalFilename(作 detailFileName)。明细附件(必填)白名单:pdf/md/doc/docx/xls/xlsx/ppt/pptx(≤30MB);封面(选填):jpg/jpeg/png(≤10MB)。发放状态1 申请中、2 已发放。补贴名称:1~20 字符(必填)。

界面(UI)测试:借助 Playwright 启动 Chromium(与 Google Chrome 同源内核);可配置 channel: 'chrome' 调用本机已安装的谷歌浏览器。


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-BTSX-UT-001 参数校验 补贴名称长度 单元测试 JUnit5 §5.1 1~20 空串、1 字、20 字、21 字 空/21 失败;1~20 通过
ZCZX-BTSX-UT-002 参数校验 简介字数 单元测试 JUnit5 选填≤50 null/空通过;51 字失败 符合 §5.1
ZCZX-BTSX-UT-003 参数校验 发放状态枚举 单元测试 JUnit5 仅 1~2 grantStatus 为 1/2 通过;0、3、null 失败 与技术方案 §2.2 一致
ZCZX-BTSX-UT-004 附件校验 明细后缀白名单 单元测试 JUnit5 §5.1 .pdf.xlsx 通过;.exe.zip 失败 与需求一致
ZCZX-BTSX-UT-005 附件校验 封面后缀白名单 单元测试 JUnit5 §5.1 .jpg.png 通过;.bmp 失败 与需求一致
ZCZX-BTSX-UT-006 附件校验 明细三件套必填 单元测试 JUnit5 url/path/name 缺 url 或缺 name;三者齐全 前者失败;后者通过
ZCZX-BTSX-UT-007 附件校验 封面成对 单元测试 JUnit5 可空成对 仅 coverUrl 无 path;二者齐全或皆空 单字段失败;成对/皆空通过
ZCZX-BTSX-UT-008 业务默认 新增缺省发放状态 单元测试 JUnit5 技术方案 §1 resolveGrantStatus(null) 或 insert 未传 落库/结果为 1(申请中)
ZCZX-BTSX-UT-009 Service 新增落库 单元测试 JUnit5+Mockito §5.1 合法实体含明细三件套 insert(matter) 字段与入参一致;grant_status 正确
ZCZX-BTSX-UT-010 Service 修改全字段 单元测试 JUnit5+Mockito §5.3 已存在 id update 改名称、状态、简介 更新成功;update_time 变化
ZCZX-BTSX-UT-011 Service 状态双向变更 单元测试 JUnit5+Mockito §5.3 默认 grant_status=2 update 改为 1 成功(默认允许回退)
ZCZX-BTSX-UT-012 Service 修改缺明细拒绝 单元测试 JUnit5+Mockito 保存约束 已存在记录 update 清空 detail 三件套 校验失败;不写库
ZCZX-BTSX-UT-013 Service 替换明细删旧 单元测试 JUnit5+Mockito §5.3 detail_file_path 已知 update 换新三件套 Mock 验证 deleteFile(旧path)
ZCZX-BTSX-UT-014 Service 替换封面删旧 单元测试 JUnit5+Mockito §5.3 cover_file_path 已知 update 换新封面 删除旧 cover path
ZCZX-BTSX-UT-015 Service 删除联动清文件 单元测试 JUnit5+Mockito §5.4 记录含 detail/cover path deleteByIds([id]) 删库;对两 path 各调 deleteFile
ZCZX-BTSX-UT-016 Service 列表排序 SQL 单元测试 JUnit5 技术方案 检查列表 ORDER BY create_time DESC, id DESC

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-BTSX-API-001 列表 默认分页排序 接口测试 Postman/curl §5.2 已登录;有多条不同创建时间 GET /industryPolicy/subsidyMatter/list rows≤20;createTime 新在前
ZCZX-BTSX-API-002 列表 关键字-名称 接口测试 Postman 模糊 已登录 keyword= 仅命中名称片段 返回含该名称记录
ZCZX-BTSX-API-003 列表 关键字-简介 接口测试 Postman OR 简介含词、名称不含 同上 keyword 仍命中
ZCZX-BTSX-API-004 列表 发放状态-申请中 接口测试 Postman 精确 已登录 grantStatus=1 均为申请中
ZCZX-BTSX-API-005 列表 发放状态-已发放 接口测试 Postman 精确 已登录 grantStatus=2 均为已发放
ZCZX-BTSX-API-006 列表 组合查询 接口测试 Postman 多条件 已登录 keyword+grantStatus 同时满足
ZCZX-BTSX-API-007 新增 合法全字段 接口测试 Postman §5.1 已登录;已上传明细+封面 POST Body 合法 code 成功;详情含 detailFileName
ZCZX-BTSX-API-008 新增 最小必填无封面 接口测试 Postman 正常 已登录;仅上传明细 POST 名称+状态+明细三件套,无简介无封面 成功;grantStatus 为入参或默认 1
ZCZX-BTSX-API-009 新增 缺省发放状态 接口测试 Postman 默认申请中 已登录 POST 不传 grantStatus(若接口支持) 落库 grantStatus=1
ZCZX-BTSX-API-010 新增 直接已发放 接口测试 Postman §4 补录 已登录 grantStatus=2+合法明细 成功;详情为已发放
ZCZX-BTSX-API-011 新增 名称非法 接口测试 Postman 1~20 已登录 名称空/21 字 失败;无新记录
ZCZX-BTSX-API-012 新增 简介超长 接口测试 Postman ≤50 已登录 introduction 51 字 失败
ZCZX-BTSX-API-013 新增 发放状态非法 接口测试 Postman 枚举 已登录 grantStatus=099 失败
ZCZX-BTSX-API-014 新增 缺明细附件 接口测试 Postman 必填 已登录 不传 detail 三件套 失败;提示明细类错误
ZCZX-BTSX-API-015 新增 明细后缀非法 接口测试 Postman 白名单 已登录 detail 指向 .exe 或伪造后缀 失败
ZCZX-BTSX-API-016 详情 有效 id 接口测试 Postman §5.5 已登录 GET .../subsidyMatter/{id} 含名称、状态、明细名、封面及审计字段
ZCZX-BTSX-API-017 详情 无效 id 接口测试 Postman 异常 已登录 不存在 id 404 或业务失败
ZCZX-BTSX-API-018 修改 合法修改 接口测试 Postman §5.3 已登录;有记录 PUT 改名称、简介 成功;详情已更新
ZCZX-BTSX-API-019 修改 状态 申请中→已发放 接口测试 Postman §4 流转 记录 grantStatus=1 PUT grantStatus=2 成功
ZCZX-BTSX-API-020 修改 状态 已发放→申请中 接口测试 Postman 默认可回退 记录 grantStatus=2 PUT grantStatus=1 成功(未单独约定禁止时)
ZCZX-BTSX-API-021 修改 清空明细拒绝 接口测试 Postman 保存约束 已登录 PUT 去掉 detail 三件套 失败;原数据不变
ZCZX-BTSX-API-022 修改 替换明细附件 接口测试 Postman 删旧 原 detail path 已知 PUT 换新三件套 成功;旧文件不可访问(抽查)
ZCZX-BTSX-API-023 修改 替换封面 接口测试 Postman §5.3 有旧封面 PUT 换新 cover 成功;旧封面不可访问
ZCZX-BTSX-API-024 删除 单条-申请中 接口测试 Postman §5.4 已登录;grantStatus=1 DELETE .../{id} 成功;详情 404
ZCZX-BTSX-API-025 删除 单条-已发放 接口测试 Postman 默认不限制 已登录;grantStatus=2 DELETE .../{id} 成功(默认策略)
ZCZX-BTSX-API-026 删除 批量删除 接口测试 Postman 批量 已登录;多条 id DELETE id1,id2 均不可查
ZCZX-BTSX-API-027 端到端 CRUD+状态流转 接口测试 Postman §4 已登录 新增(申请中)→列表→详情→改已发放→删 每步成功
ZCZX-BTSX-API-028 鉴权 未登录 接口测试 curl 安全 无 Token GET .../list 401 或统一未登录
ZCZX-BTSX-API-029 权限 无写权限 接口测试 Postman 越权 仅 list 权限 POST .../subsidyMatter 无权限失败
ZCZX-BTSX-API-030 响应 失败可读 接口测试 Postman §7 已登录 触发缺明细/名称空等 Body 含 codemsg 且可区分

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-BTSX-UI-001 列表 默认分页排序 UI 测试 Playwright+Chrome §5.2 已登录;数据>20 进入「项目与补贴-补贴」 每页 20;创建时间新在前
ZCZX-BTSX-UI-002 列表 关键字查询 UI 测试 Playwright+Chrome 模糊 OR 有样本 输入 keyword→查询 命中名称或简介
ZCZX-BTSX-UI-003 列表 发放状态筛选 UI 测试 Playwright+Chrome 精确 两种状态均有 选「申请中」→查询 状态列均为申请中
ZCZX-BTSX-UI-004 列表 组合与重置 UI 测试 Playwright+Chrome 恢复 已筛选 keyword+状态→查询→重置 重置后条件清空
ZCZX-BTSX-UI-005 列表 操作按钮 UI 测试 Playwright+Chrome §6 有数据行 检查操作列 查看/编辑/删除按权限显示
ZCZX-BTSX-UI-006 列表 明细文件名可点 UI 测试 Playwright+Chrome §5.2 有附件记录 查看列表附件列 显示原始文件名;可点击(下载/预览)
ZCZX-BTSX-UI-007 新增 合法全字段 UI 测试 Playwright+Chrome §5.1 已登录 新增→填名称、选申请中→上传 pdf→上传 jpg 封面→确定 成功;列表可见
ZCZX-BTSX-UI-008 新增 无封面无简介 UI 测试 Playwright+Chrome 选填 已登录 仅名称+状态+明细→保存 成功
ZCZX-BTSX-UI-009 新增 默认申请中 UI 测试 Playwright+Chrome §5.1 默认 已登录 打开新增弹窗不改状态 发放状态默认「申请中」
ZCZX-BTSX-UI-010 新增 直接已发放 UI 测试 Playwright+Chrome §4 补录 已登录 选「已发放」+合法明细→保存 列表显示已发放
ZCZX-BTSX-UI-011 新增 名称空或超长 UI 测试 Playwright+Chrome 1~20 已登录 名称空/21 字→提交 校验失败
ZCZX-BTSX-UI-012 新增 未传明细附件 UI 测试 Playwright+Chrome 必填 已登录 不上传明细→提交 提示须上传明细附件
ZCZX-BTSX-UI-013 新增 明细格式非法 UI 测试 Playwright+Chrome 白名单 准备 .exe setInputFiles 上传→提交 拒绝或明确错误提示
ZCZX-BTSX-UI-014 新增 封面格式非法 UI 测试 Playwright+Chrome §5.1 准备 .bmp 上传封面→提交 拒绝或错误提示
ZCZX-BTSX-UI-015 新增 简介超长 UI 测试 Playwright+Chrome ≤50 已登录 简介 51 字→提交 校验失败
ZCZX-BTSX-UI-016 详情 字段完整 UI 测试 Playwright+Chrome §5.5 任意记录 点「查看」 名称、简介、状态、明细下载入口、封面、审计信息齐全
ZCZX-BTSX-UI-017 详情 进入编辑 UI 测试 Playwright+Chrome §5.5 有 edit 权限 详情页点编辑 进入编辑表单且数据回显
ZCZX-BTSX-UI-018 修改 编辑成功 UI 测试 Playwright+Chrome §5.3 有记录 编辑→改名称→保存 列表/详情已更新
ZCZX-BTSX-UI-019 修改 状态变更 UI 测试 Playwright+Chrome 1↔2 申请中记录 改为已发放→保存 列表显示已发放
ZCZX-BTSX-UI-020 修改 替换明细附件 UI 测试 Playwright+Chrome §5.3 有记录 重新上传 pdf→保存 成功;详情显示新文件名
ZCZX-BTSX-UI-021 修改 清空明细失败 UI 测试 Playwright+Chrome 约束 有记录 移除已传明细→保存 校验失败
ZCZX-BTSX-UI-022 删除 单条确认 UI 测试 Playwright+Chrome §5.4 有记录 删除→确认 记录消失
ZCZX-BTSX-UI-023 删除 取消删除 UI 测试 Playwright+Chrome 确认框 有记录 删除→取消 记录仍在
ZCZX-BTSX-UI-024 删除 已发放可删 UI 测试 Playwright+Chrome 默认策略 已发放记录 删除→确认 成功删除(默认)
ZCZX-BTSX-UI-025 删除 批量删除 UI 测试 Playwright+Chrome 批量 勾选多条 批量删除→确认 选中行均消失
ZCZX-BTSX-UI-026 端到端 CRUD 串联 UI 集成 Playwright+Chrome §4 可新增 新增→查→看→改状态→删 全流程无报错
ZCZX-BTSX-UI-027 权限 只读账号 UI 测试 Playwright+Chrome §8 无 add/edit/remove 登录进模块 无新增/编辑/删除或操作拒绝
ZCZX-BTSX-UI-028 导出 导出按钮(可选) UI 测试 Playwright+Chrome 技术方案 有 export 权限 点导出 下载 Excel 或成功提示

Playwright 与谷歌浏览器(实施提示)

  • 安装:npm i -D @playwright/testnpx playwright install chromium;本机 Chrome:channel: 'chrome'
  • 登录复用:storageState: 'auth.json'
  • 路由示例:page.goto('/policy/subsidyMatter')(以菜单组件路径为准)。
  • 上传:page.locator('input[type=file]').first().setInputFiles('fixtures/sample.pdf')
  • 确认框:page.getByRole('button', { name: /确定|确认/ }).click()
  • 断言:expect(page.getByText('申请中')).toBeVisible()

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-008~011、016 API-001~010、016~020、022~023、027 UI-001~010、016~020、022、026
异常流程 UT-001~002、012 API-011~015、017、021、028~030 UI-011~015、021、023
业务约束 UT-003~007 API-004~005、013~015、019~021、024~025 UI-003、009~010、012~014、019、024
附件/文件 UT-004~007、013~015 API-007~008、022~023 UI-006~008、012~014、020
权限/导出 API-028~029 UI-005、027~028

功能需求追溯(自查)

需求章节 要点 主要对应用例
§2.1 发放状态 申请中/已发放、可互改 UT-003、011;API-004~005、019~020;UI-003、009~010、019
§5.1 新增 名称、明细必填、封面选填、默认申请中 UT-001、004~008;API-007~015;UI-007~015
§5.2 列表 keyword OR、状态筛选、排序 UT-016;API-001~006;UI-001~006
§5.3 修改 全字段、明细不可空、换附件删旧 UT-010~014;API-018~023;UI-018~021
§5.4 删除 确认、清文件、已发放默认可删 UT-015;API-024~026;UI-022~025
§5.5 详情 全字段、下载入口 API-016;UI-016~017
§6~§7 权限、code/msg API-028~030;UI-027

修订记录

版本 说明
1.0 初版:单元 16、接口 30、UI 28;台账 CRUD;明细必填+封面选填;Playwright+Chrome;Base /industryPolicy/subsidyMatter
1.1 草稿 §6 发布/下架:见下表补充用例

补充用例(草稿 §6 发布/下架)

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-BTSX-UT-017 状态机 删除守卫 单元测试 JUnit5 矩阵 canDelete(publish=0/1) 0→true,1→false
ZCZX-BTSX-API-031 发布 未发布成功 接口测试 Postman §5.6 publish=0;明细齐全 POST .../publish/{id} publish=1
ZCZX-BTSX-API-032 修改 已发布拒绝 接口测试 Postman 矩阵 publish=1 PUT 失败
ZCZX-BTSX-API-033 下架 已发布成功 接口测试 Postman §5.6 publish=1 POST .../offline/{id} publish=0;附件仍在
ZCZX-BTSX-UI-029 列表 发布下架按钮 UI 测试 Playwright+Chrome 矩阵 两种状态 查看操作列 与宣传模块矩阵一致