西藏巴青项目

疫情上报管理测试用例.md 13KB

疫情上报 — 测试用例

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

通用前置(无特殊说明):具备本模块菜单与按钮权限的账号已登录。枚举:传播途径/疫病类型 1~4,风险等级 1~3(见技术方案 §2.3)。处置状态release_date 为空=未解除(relieveStatus=0);非空=已解除(relieveStatus=1)。解除日期仅能通过「解除」接口写入,且须 ≥ 上报日期

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


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
YQSB-UT-001 参数校验 传播途径枚举 单元测试 JUnit5 1~4 传 1、4、0、5 1、4 通过;0、5 失败
YQSB-UT-002 参数校验 疫病类型枚举 单元测试 JUnit5 1~4 传 1、4、9 1、4 通过;9 失败
YQSB-UT-003 参数校验 风险等级枚举 单元测试 JUnit5 1~3 传 1、3、4 1、3 通过;4 失败
YQSB-UT-004 参数校验 上报日期格式 单元测试 JUnit5 YYYY-MM-DD 2026-05-01 通过;20260501、空 失败 与 §3.4 一致
YQSB-UT-005 参数校验 涉疫轨迹长度 单元测试 JUnit5 1~500 字 空串、1 字、501 字 空/超长失败;合法通过
YQSB-UT-006 参数校验 疫病名称长度 单元测试 JUnit5 1~50 字 空、51 字 失败;1~50 通过
YQSB-UT-007 解除校验 解除不早于上报 单元测试 JUnit5 §5.6 上报日 2026-05-10 解除日 2026-05-09 / 2026-05-10 早于失败;等于或晚于通过
YQSB-UT-008 状态守卫 可编辑判定 单元测试 JUnit5 未解除可改 release_date=null / 非空 canEdit(entity) 前者 true;后者 false
YQSB-UT-009 状态守卫 可解除判定 单元测试 JUnit5 §5.6 同上 canRelieve(entity) 前者 true;后者 false
YQSB-UT-010 Service 新增不写解除日 单元测试 JUnit5+Mockito §3.3.1 合法 Body 含 releaseDate insert 前清洗字段 落库 release_date 为 NULL
YQSB-UT-011 Service 解除更新日期 单元测试 JUnit5+Mockito relieve 未解除记录 id=1 relieve(1, 2026-06-01) release_date 更新;relieveStatus=1
YQSB-UT-012 Service 已解除禁止修改 单元测试 JUnit5+Mockito §5.3 已解除记录 update(...) 抛业务异常或返回失败
YQSB-UT-013 Service 重复解除 单元测试 JUnit5+Mockito §5.6 已解除记录 再次 relieve 失败
YQSB-UT-014 Service 列表筛选 SQL 单元测试 JUnit5 §3.1.1 transmissionRoute=2riskLevel=1 XML 含精确条件
YQSB-UT-015 Service 列表排序 单元测试 JUnit5 技术方案 检查 ORDER BY report_date DESC, create_time DESC
YQSB-UT-016 派生字段 relieveStatus 单元测试 JUnit5 0/1 release 空/非空 toVo(entity) 0 或 1 与日期一致

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
YQSB-API-001 列表 默认分页排序 接口测试 Postman/curl §5.2 已登录;有多条 GET .../epidemicReport/list rows≤20;reportDate 倒序
YQSB-API-002 列表 传播途径筛选 接口测试 Postman 精确 含途径 1、2 各一条 transmissionRoute=2 仅途径 2
YQSB-API-003 列表 风险等级筛选 接口测试 Postman 精确 含高、中危 riskLevel=1 仅高危
YQSB-API-004 列表 处置状态筛选 接口测试 Postman relieveStatus 含未解除、已解除 relieveStatus=0 / 1 分别仅对应状态
YQSB-API-005 新增 合法全字段 接口测试 Postman §5.1 已登录 POST 全部必填合法(枚举 1~4/1~3) 成功;releaseDate 为空;relieveStatus=0
YQSB-API-006 新增 非法枚举 接口测试 Postman §3.4 已登录 transmissionRoute=9 失败
YQSB-API-007 新增 必填缺失 接口测试 Postman 必填 已登录 epidemicName 失败
YQSB-API-008 新增 轨迹超长 接口测试 Postman 500 字 已登录 affectedLocationTrack 501 字 失败
YQSB-API-009 新增 携带解除日被忽略 接口测试 Postman §3.3.1 已登录 POSTreleaseDate 成功;详情 releaseDate 仍空
YQSB-API-010 详情 有效 id 接口测试 Postman §5.5 已登录 GET .../epidemicReport/{id} 含业务字段与 relieveStatus
YQSB-API-011 详情 无效 id 接口测试 Postman 异常 已登录 不存在 id 404 或业务失败
YQSB-API-012 修改 未解除合法修改 接口测试 Postman §5.3 未解除记录 PUTepidemicName、途径等 成功;详情已更新
YQSB-API-013 修改 已解除禁止修改 接口测试 Postman §5.3 已解除记录 PUT 任意字段 失败;数据不变
YQSB-API-014 修改 不可带解除日 接口测试 Postman §3.3.1 未解除 PUTreleaseDate 忽略或失败;不以修改写入解除
YQSB-API-015 解除 合法解除 接口测试 Postman §5.6 未解除;上报 2026-05-01 PUT .../relieve releaseDate=2026-05-20 成功;relieveStatus=1
YQSB-API-016 解除 早于上报日 接口测试 Postman 日期约束 未解除;上报 2026-05-10 releaseDate=2026-05-09 失败
YQSB-API-017 解除 重复解除 接口测试 Postman §5.6 已解除 再次 PUT .../relieve 失败
YQSB-API-018 删除 未解除删除 接口测试 Postman §5.4 已登录 DELETE .../{id} 成功;详情不可查
YQSB-API-019 删除 已解除删除 接口测试 Postman §5.4 已解除记录 DELETE .../{id} 成功
YQSB-API-020 删除 批量删除 接口测试 Postman 批量 多条 DELETE id1,id2 均不可查
YQSB-API-021 端到端 上报至解除 接口测试 Postman §4 已登录 新增→列表→详情→改→解除→再改/再解除 解除前改成功;解除后改/解除失败
YQSB-API-022 鉴权 未登录 接口测试 curl 安全 无 Token GET .../list 401 或统一未登录
YQSB-API-023 权限 无写权限 接口测试 Postman 越权 仅 list POST / PUT relieve 无权限失败
YQSB-API-024 响应 失败可读 接口测试 Postman §8 已登录 触发 API-013、016、017 codemsg 可区分

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
YQSB-UI-001 列表 默认加载排序 UI 测试 Playwright+Chrome §5.2 已登录;有数据 进入「疫情上报」 分页默认 20;上报日期新在前
YQSB-UI-002 列表 传播途径筛选 UI 测试 Playwright+Chrome 精确 含多种途径 选「本地扩散」→查询 仅对应行
YQSB-UI-003 列表 风险等级筛选 UI 测试 Playwright+Chrome 精确 含高/中/低 选「高危」→查询 仅高危
YQSB-UI-004 列表 重置筛选 UI 测试 Playwright+Chrome 恢复 已筛选 重置 条件清空;显示全部
YQSB-UI-005 列表 未解除操作列 UI 测试 Playwright+Chrome §6 未解除行 查看操作列 查看、编辑、解除、删除可见(按权限)
YQSB-UI-006 列表 已解除操作列 UI 测试 Playwright+Chrome §6 已解除行 查看操作列 仅查看、删除;无编辑、解除
YQSB-UI-007 新增 合法提交 UI 测试 Playwright+Chrome §5.1 已登录 新增→填全部字段→确定 成功;列表出现;处置「未解除」
YQSB-UI-008 新增 必填校验 UI 测试 Playwright+Chrome 必填 已登录 漏选传播途径或空轨迹→提交 校验失败
YQSB-UI-009 新增 无解除日字段 UI 测试 Playwright+Chrome §5.1 已登录 打开新增表单 无解除日期录入项
YQSB-UI-010 编辑 未解除修改成功 UI 测试 Playwright+Chrome §5.3 未解除行 编辑→改疫病名称→保存 列表/详情已更新
YQSB-UI-011 编辑 已解除无入口 UI 测试 Playwright+Chrome §5.3 已解除行 查列表/详情 无「编辑」按钮
YQSB-UI-012 解除 弹窗合法解除 UI 测试 Playwright+Chrome §5.6 未解除;上报日已知 解除→选≥上报日的日期→确认 成功;状态已解除;显示解除日
YQSB-UI-013 解除 早于上报日 UI 测试 Playwright+Chrome 日期约束 未解除 解除日选早于上报日→确认 校验失败或提示
YQSB-UI-014 解除 取消确认 UI 测试 Playwright+Chrome 确认框 未解除 解除→取消 仍为未解除
YQSB-UI-015 解除 已解除无按钮 UI 测试 Playwright+Chrome §5.6 已解除行 查看操作列 无「解除」
YQSB-UI-016 删除 单条确认删除 UI 测试 Playwright+Chrome §5.4 任意行 删除→确认 行消失
YQSB-UI-017 删除 批量删除 UI 测试 Playwright+Chrome 批量 多条 勾选→批量删→确认 选中均消失
YQSB-UI-018 详情 字段完整 UI 测试 Playwright+Chrome §5.5 任意记录 点「查看」 含途径、类型、名称、等级、轨迹、处置状态、解除日
YQSB-UI-019 端到端 全流程 UI 集成 Playwright+Chrome §4 可新增 新增→筛选→编辑→解除→验证不可再编 与需求矩阵一致
YQSB-UI-020 权限 只读账号 UI 测试 Playwright+Chrome §9 无 add/edit/relieve/remove 登录进模块 无对应按钮或操作拒绝
YQSB-UI-021 错误提示 业务失败可读 UI 测试 Playwright+Chrome §8 已登录 对已解除点编辑(若可直链)或解除日非法 Message 含明确原因

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

  • 安装:npm i -D @playwright/testnpx playwright install chromium;配置 use: { channel: 'chrome' }
  • 导航:page.getByText('疫情上报')goto('/diseaseDetection/epidemicReport')(以实际路由为准)。
  • 筛选:el-select 选传播途径/风险等级后点「搜索」。
  • 解除:行内「解除」→ 弹窗 el-date-picker → 确定;断言行内「已解除」或 releaseDate 列有值。
  • 操作列:对 relieveStatus=0expect(editBtn).toBeVisible();对已解除 expect(relieveBtn).toHaveCount(0)

覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-010~011、014~016 API-001~005、010~012、015、018~021 UI-001~007、010、012、016~019
异常流程 UT-001~007、012~013 API-006~009、011、013、016~017、022~024 UI-008、013~014、021
业务约束 UT-008~009、007 API-004、009、013~017 UI-005~006、009、011、015

功能需求追溯(自查)

需求章节 要点 主要对应用例
§5.1 新增 六字段必填、无解除日 UT-001~006、010;API-005~009;UI-007~009
§5.2 列表 途径/等级筛选、排序 UT-014~015;API-001~004;UI-001~004
§5.3 修改 仅未解除 UT-008、012;API-012~014;UI-010~011
§5.4 删除 均可删 API-018~020;UI-016~017
§5.5 详情 全字段 API-010;UI-018
§5.6 解除 日期、不可重复 UT-007、009、011、013;API-015~017;UI-012~015
§6 矩阵 操作按钮 UT-008~009;API-013、017;UI-005~006、011、015
§8 错误 code/msg API-024;UI-021

修订记录

版本 说明
1.0 初版:单元 16、接口 24、UI 21;处置状态由 release_date 推导;Playwright+Chrome;Base /diseaseDetection/epidemicReport