西藏巴青项目

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

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

依据:项目与补贴-项目功能需求.md项目与补贴-项目技术方案.md
接口 Base Path(示例)/policy/projectSubsidy;鉴权与若依一致(Cookie / Token)。

通用前置(无特殊说明):具备本模块菜单与按钮权限的账号已登录;封面上传白名单 jpg/jpeg/png(≤10MB)。执行状态1 未开始、2 进行中、3 已完成。自动推算(草稿 §1.1,manual_complete_flag=0):T<S→1;T=E→3;S≤T<E→2;T>E→2(超期不自动完成)。

界面(UI)测试Playwright + Chromiumchannel: 'chrome' 使用本机 Google Chrome)。


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-BTXM-UT-001 状态推算 T<开始日 单元测试 JUnit5 §2.2 resolveExecStatus(S=明天,E=后天,T=今天,flag=0) 返回 1(未开始)
ZCZX-BTXM-UT-002 状态推算 进行中区间 单元测试 JUnit5 §2.2 S=昨天,E=明天,T=今天 返回 2(进行中)
ZCZX-BTXM-UT-003 状态推算 T=预计完成日 单元测试 JUnit5 §1.1 S=上月,E=今天,T=今天 返回 3(已完成)
ZCZX-BTXM-UT-003A 状态推算 T>预计完成日 单元测试 JUnit5 §2.2 超期 S=上月,E=昨天,T=今天 返回 2(进行中), 3
ZCZX-BTXM-UT-004 状态推算 手工锁定不降级 单元测试 JUnit5 manual_flag=1 flag=1,日期改回进行中区间 调用推算 不修改 exec_status(仍为 3)
ZCZX-BTXM-UT-005 状态推算 手工完成必填实际日 单元测试 JUnit5 §2.2 用户提交 execStatus=3 且无 actualEndDate 校验失败
ZCZX-BTXM-UT-006 参数校验 项目名称长度 单元测试 JUnit5 1~20 空、1 字、20 字、21 字 空/21 失败;1~20 通过
ZCZX-BTXM-UT-007 参数校验 简介字数 单元测试 JUnit5 ≤50 选填 null/空通过;51 字失败 符合 §5.1
ZCZX-BTXM-UT-008 参数校验 投资金额 单元测试 JUnit5 >0 0、-1、0.01、三位小数 非法失败;合法通过
ZCZX-BTXM-UT-009 参数校验 计划日期先后 单元测试 JUnit5 E≥S planned<start 失败;planned=start 通过
ZCZX-BTXM-UT-010 参数校验 实际完成日 单元测试 JUnit5 ≤当天 明天、今天 明天失败;今天通过
ZCZX-BTXM-UT-011 查询校验 开始日区间 单元测试 JUnit5 §5.2 start>end / 合法区间 非法失败;合法通过
ZCZX-BTXM-UT-012 Service 保存后推算写库 单元测试 JUnit5+Mockito 新增 flag=0,日期落入进行中 insert 前调用 resolver 库中 exec_status=2
ZCZX-BTXM-UT-013 Service 手工完成写 flag 单元测试 JUnit5+Mockito §3.3.1 提交 execStatus=3+actualEndDate save manual_complete_flag=1actual_end_date 有值
ZCZX-BTXM-UT-014 Service 列表查询刷新状态 单元测试 JUnit5+Mockito §1 库中 flag=0,日期已跨期 selectList 组装 VO 展示态为推算后状态(宜同步写库)
ZCZX-BTXM-UT-015 Service 删除清封面 单元测试 JUnit5+Mockito §5.4 有 cover_file_path deleteByIds Mock 验证 deleteFile(path)
ZCZX-BTXM-UT-016 Service 换封面删旧 单元测试 JUnit5+Mockito §5.3 旧 path 已知 update 换新 path 删除旧 path 文件
ZCZX-BTXM-UT-017 附件校验 封面后缀 单元测试 JUnit5 白名单 .jpg 通过;.exe 失败 与需求一致

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-BTXM-API-001 列表 默认分页排序 接口测试 Postman/curl §5.2 已登录;有多条项目 GET /industryPolicy/subsidyProject/list ≤20 条;projectStartDate 倒序
ZCZX-BTXM-API-002 列表 关键字-名称 接口测试 Postman 模糊 已登录 keyword= 命中名称片段 返回含该名称行
ZCZX-BTXM-API-003 列表 关键字-简介 接口测试 Postman OR 简介含词、名称不含 同上 keyword 仍命中
ZCZX-BTXM-API-004 列表 执行状态筛选 接口测试 Postman 精确 已登录 execStatus=2 均为进行中
ZCZX-BTXM-API-005 列表 开始日闭区间 接口测试 Postman §5.2 已知开始日样本 startDate+endDate 仅区间内
ZCZX-BTXM-API-006 列表 区间非法 接口测试 Postman 异常 已登录 start>end 失败;可读 msg
ZCZX-BTXM-API-007 列表 查询刷新状态 接口测试 Postman §2.2 库中项目 S/E 使今天应为进行中且库仍为 1 GET list 返回 execStatus=2(或已同步写库)
ZCZX-BTXM-API-008 新增 合法全字段 接口测试 Postman 正常 已登录;已上传封面 POST Body 合法 成功;字段落库
ZCZX-BTXM-API-009 新增 自动推算-未开始 接口测试 Postman §2.2 已登录 开始日=明天,预计=下月,execStatus 随意 保存后 execStatus=1
ZCZX-BTXM-API-010 新增 自动推算-进行中 接口测试 Postman §2.2 已登录 开始=昨天,预计=明天 保存后 execStatus=2
ZCZX-BTXM-API-011 新增 自动推算-已完成 接口测试 Postman §1.1 T=E 已登录 开始=上月,预计=今天 保存后 execStatus=3actualEndDate 默认今天
ZCZX-BTXM-API-011A 新增 超期不自动完成 接口测试 Postman T>E 已登录 开始=上月,预计=昨天 保存后 execStatus=2(仍为进行中)
ZCZX-BTXM-API-012 新增 手工已完成 接口测试 Postman §2.2 进行中日期段 execStatus=3+actualEndDate=今天 成功;manual_complete_flag=1
ZCZX-BTXM-API-013 新增 已完成缺实际日 接口测试 Postman 异常 已登录 execStatus=3 无 actualEndDate 失败
ZCZX-BTXM-API-014 新增 项目名/金额非法 接口测试 Postman 校验 已登录 名空/金额 0/预计<开始 分别失败
ZCZX-BTXM-API-015 详情 有效 id 接口测试 Postman §5.5 已登录 GET .../subsidyProject/{id} 含状态、封面、审计字段
ZCZX-BTXM-API-016 详情 无效 id 接口测试 Postman 异常 已登录 不存在 id 404 或业务失败
ZCZX-BTXM-API-017 修改 合法修改 接口测试 Postman §5.3 已登录 PUT 改投资金额 成功;详情已更新
ZCZX-BTXM-API-018 修改 已完成锁定不降级 接口测试 Postman §2.2 记录 flag=1、status=3 改预计完成为未来,PUT execStatus 仍为 3
ZCZX-BTXM-API-019 修改 改状态清锁定 接口测试 Postman 可选规则 flag=1 记录 execStatus 改为 2 保存 manual_complete_flag=0;重新可推算
ZCZX-BTXM-API-020 修改 替换封面 接口测试 Postman §5.3 有旧封面 PUT 换新 cover 成功;旧文件不可访问(抽查)
ZCZX-BTXM-API-021 删除 单条删除 接口测试 Postman §5.4 已登录 DELETE .../{id} 成功;详情 404
ZCZX-BTXM-API-022 删除 批量删除 接口测试 Postman 批量 已登录 DELETE id1,id2 均不可查
ZCZX-BTXM-API-023 端到端 CRUD+状态 接口测试 Postman §4 已登录 新增(进行中)→列表→详情→改→删 状态与矩阵一致
ZCZX-BTXM-API-024 鉴权 未登录 接口测试 curl 安全 无 Token GET list 401 或统一未登录
ZCZX-BTXM-API-025 权限 无写权限 接口测试 Postman 越权 仅 list POST 无权限失败
ZCZX-BTXM-API-026 响应 失败可读 接口测试 Postman §7 已登录 触发计划日倒置等 code+可区分 msg

三、界面测试用例(UI)

测试工具Playwright + Chromiumchannel: 'chrome')。

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-BTXM-UI-001 列表 默认分页排序 UI 测试 Playwright+Chrome §5.2 已登录;数据>20 进入「项目与补贴-项目」 每页 20;开始日新在前
ZCZX-BTXM-UI-002 列表 关键字查询 UI 测试 Playwright+Chrome 模糊 有样本 输入 keyword→查询 命中名称或简介
ZCZX-BTXM-UI-003 列表 执行状态筛选 UI 测试 Playwright+Chrome 精确 多状态数据 选「进行中」→查询 状态列均为进行中
ZCZX-BTXM-UI-004 列表 开始日范围 UI 测试 Playwright+Chrome 闭区间 已知样本 选 start/end→查询 仅区间内
ZCZX-BTXM-UI-005 列表 区间非法提示 UI 测试 Playwright+Chrome 异常 已登录 start>end→查询 Message 提示;不刷新错误数据
ZCZX-BTXM-UI-006 列表 重置条件 UI 测试 Playwright+Chrome 恢复 已筛选 重置 条件清空
ZCZX-BTXM-UI-007 新增 合法提交含封面 UI 测试 Playwright+Chrome §5.1 已登录 填必填+上传 jpg→保存 成功;列表可见
ZCZX-BTXM-UI-008 新增 简介选填 UI 测试 Playwright+Chrome 选填 已登录 简介空、无封面,其余合法→保存 成功
ZCZX-BTXM-UI-009 新增 名称/金额非法 UI 测试 Playwright+Chrome 校验 已登录 名空或金额 0→提交 校验失败
ZCZX-BTXM-UI-010 新增 预计早于开始 UI 测试 Playwright+Chrome E≥S 已登录 预计<开始→提交 校验失败
ZCZX-BTXM-UI-011 新增 手工已完成 UI 测试 Playwright+Chrome §2.2 日期段可为进行中 选「已完成」→须填实际完成日→保存 成功;详情有实际完成日
ZCZX-BTXM-UI-012 新增 已完成无实际日 UI 测试 Playwright+Chrome 异常 已登录 选已完成不填实际日→提交 校验失败
ZCZX-BTXM-UI-013 新增 封面非法 UI 测试 Playwright+Chrome §5.1 准备 .bmp 上传→提交 拒绝或错误提示
ZCZX-BTXM-UI-014 新增 保存后状态-进行中 UI 集成 Playwright+Chrome T<E 开始=昨天预计=明天 保存后看列表 显示「进行中」
ZCZX-BTXM-UI-014A 新增 保存后状态-已完成 UI 集成 Playwright+Chrome T=E 开始=上月预计=今天 保存后看列表 显示「已完成」
ZCZX-BTXM-UI-014B 新增 超期仍为进行中 UI 集成 Playwright+Chrome T>E 开始=上月预计=昨天 保存后看列表 显示「进行中」非已完成
ZCZX-BTXM-UI-015 详情 字段完整 UI 测试 Playwright+Chrome §5.5 任意记录 查看 各字段+封面+状态齐全
ZCZX-BTXM-UI-016 修改 编辑成功 UI 测试 Playwright+Chrome §5.3 有记录 编辑改投资金额→保存 列表已更新
ZCZX-BTXM-UI-017 修改 替换封面 UI 测试 Playwright+Chrome §5.3 有封面 换图保存 详情为新图
ZCZX-BTXM-UI-018 修改 已完成锁定(可选) UI 集成 Playwright+Chrome 不降级 已手工完成项目 改预计为未来→保存 状态仍为已完成
ZCZX-BTXM-UI-019 删除 单条确认删除 UI 测试 Playwright+Chrome §5.4 有记录 删除→确认 行消失
ZCZX-BTXM-UI-020 删除 取消删除 UI 测试 Playwright+Chrome 确认框 有记录 删除→取消 仍在
ZCZX-BTXM-UI-021 删除 批量删除 UI 测试 Playwright+Chrome 批量 勾选多条 批量删→确认 选中均消失
ZCZX-BTXM-UI-022 删除 删后封面失效 UI 测试 Playwright+Chrome 清文件 删前复制封面 URL 删除后打开 URL 不可访问
ZCZX-BTXM-UI-023 端到端 CRUD 串联 UI 集成 Playwright+Chrome §4 可新增 新增→查→看→改→删 全流程通过
ZCZX-BTXM-UI-024 权限 只读账号 UI 测试 Playwright+Chrome §8 无写权限 登录进模块 无新增/编辑/删除
ZCZX-BTXM-UI-025 表单 选已完成显示实际日 UI 测试 Playwright+Chrome 联动 新增弹窗 执行状态选「已完成」 「实际完成日期」表单项必填/显示

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

  • playwright.config.tsuse: { channel: 'chrome', locale: 'zh-CN' }storageState 复用登录态。
  • 路由:page.goto('/policy/subsidyProject')(以菜单为准)。
  • 日期:准备「昨天/明天」用 new Date() 在脚本中格式化。
  • 状态选项:getByRole('option', { name: /进行中|未开始|已完成/ })

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-012~014 API-001~012、015、017、021~023 UI-001~008、014~017、019、023
异常流程 UT-005、008~011 API-006、013~014、016、025~026 UI-005、009~013、020
业务约束/状态机 UT-001~005、003A、013 API-007、009~012、011A、018~019 UI-011~012、014~014B、018、025
封面/删除 UT-015~017 API-020、021~022 UI-007、013、017、022

功能需求追溯(自查)

需求章节 要点 主要对应用例
§2.2 状态推算 T=E 完成、T>E 超期、手工锁定 UT-001~005、003、003A、012~014;API-007、009~013、011、011A、018;UI-011~012、014~014B、018、025
§5.1 新增 字段校验、封面 UT-006~010、017;API-008、014;UI-007~013
§5.2 列表 关键字、状态、日期区间 API-001~006;UI-001~006
§5.3 修改 全字段、换封面、锁定 UT-016;API-017~020;UI-016~018
§5.4 删除 删封面 UT-015;API-021~022;UI-019~022
§5.5 详情 状态刷新展示 API-015;UI-015
§6 权限 四操作 API-024~025;UI-024
§7 错误 code/msg API-026

修订记录

版本 说明
1.0 初版:单元 17、接口 26、UI 25;含状态推算/手工锁定/封面;Playwright+Chrome;Base /industryPolicy/subsidyProject
1.1 同步草稿 §1.1:已完成仅 T=E;新增 UT/API/UI 超期 T>E 仍为进行中用例
1.2 草稿 §6 发布/下架:见下表补充用例(发布状态 0/1)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-BTXM-UT-018 状态机 编辑守卫 单元测试 JUnit5 矩阵 canEdit(publish=0/1) 0→true,1→false
ZCZX-BTXM-API-027 发布 未发布成功 接口测试 Postman §5.6 publish=0 POST .../publish/{id} publish=1;publishTime 有值
ZCZX-BTXM-API-028 修改 已发布拒绝 接口测试 Postman 矩阵 publish=1 PUT 失败;数据不变
ZCZX-BTXM-API-029 下架 已发布成功 接口测试 Postman §5.6 publish=1 POST .../offline/{id} publish=0;offlineTime 有值
ZCZX-BTXM-UI-026 列表 发布下架按钮 UI 测试 Playwright+Chrome 矩阵 两种状态各有数据 切换行看操作列 未发布有发布;已发布有下架