西藏巴青项目

实验室检测管理测试用例.md 13KB

实验室检测 — 测试用例

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

通用前置(无特殊说明):具备本模块菜单与按钮权限的账号已登录。样本来源枚举1 场地抽检 / 2 疫情上报送检 / 3 调运检疫 / 4 日常检测。检出率:服务端计算 positiveCount ÷ testQuantitytestQuantity=0 时为 0),比值存库;前端 ×100 展示为百分比(建议 2 位小数)。客户端不得在新增/修改 Body 中写入 detectionRate 生效。

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


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
SYJC-UT-001 参数校验 样本来源枚举 单元测试 JUnit5 1~4 合法 传 1、4、0、5 1、4 通过;0、5 失败
SYJC-UT-002 参数校验 检测日期格式 单元测试 JUnit5 YYYY-MM-DD 2026-05-01 通过;20260501、空 失败 与 §3.2 一致
SYJC-UT-003 参数校验 检测量非负整数 单元测试 JUnit5 ≥0 整数 传 0、100、-1、1.5 0、100 通过;-1、1.5 失败
SYJC-UT-004 参数校验 阳性数非负整数 单元测试 JUnit5 ≥0 整数 传 0、10、-1、2.3 0、10 通过;-1、2.3 失败
SYJC-UT-005 数量约束 阳性不大于检测量 单元测试 JUnit5 §5.1 testQuantity=10, positiveCount=11 / 10 前者失败;后者通过
SYJC-UT-006 数量约束 零检测量 单元测试 JUnit5 §5.1 testQuantity=0, positiveCount=1 / 0 前者失败;后者通过
SYJC-UT-007 检出率计算 常规比值 单元测试 JUnit5 §2.3 calcRate(100, 12) 返回 0.1200(与 decimal(8,4) 一致)
SYJC-UT-008 检出率计算 零检测量 单元测试 JUnit5 §2.3 calcRate(0, 0) 返回 0
SYJC-UT-009 检出率计算 全阴性 单元测试 JUnit5 边界 calcRate(50, 0) 返回 0
SYJC-UT-010 Service 新增忽略客户端检出率 单元测试 JUnit5+Mockito §3.3.1 合法 Body 且 detectionRate=0.99 insert 前清洗并重算 落库 detection_rate 按数量计算,非 0.99
SYJC-UT-011 Service 修改重算检出率 单元测试 JUnit5+Mockito §3.4 已有记录 10/2→0.2 改为 testQuantity=20, positiveCount=4update 库中 detection_rate=0.2
SYJC-UT-012 Service 修改无状态限制 单元测试 JUnit5+Mockito §5.3 任意有效记录 updatesampleSource 成功
SYJC-UT-013 Service 列表筛选 SQL 单元测试 JUnit5 §3.1.1 sampleSource=3 XML 含 sample_source = 3
SYJC-UT-014 Service 列表排序 单元测试 JUnit5 技术方案 检查 ORDER BY test_date DESC, create_time DESC
SYJC-UT-015 Service 删除无状态限制 单元测试 JUnit5+Mockito §5.4 任意记录 deleteById 成功
SYJC-UT-016 检疫点 必填 单元测试 JUnit5 §5.1 quarantineStationId=null 失败
SYJC-UT-017 检疫点 仅正常运营 单元测试 JUnit5+Mockito §2.5 Mock 停业站 validateQuarantineStationId 失败;正常站通过
SYJC-UT-018 检疫点 列表 SQL 筛选 单元测试 JUnit5 §3.1.1 检查 Mapper XML quarantine_station_id = #{quarantineStationId}

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
SYJC-API-001 列表 默认分页排序 接口测试 Postman/curl §5.2 已登录;有多条 GET .../labDetection/list rows≤20;testDate 倒序
SYJC-API-002 列表 样本来源筛选 接口测试 Postman 精确 含来源 1、2 各一条 sampleSource=2 仅「疫情上报送检」
SYJC-API-003 列表 未选来源不过滤 接口测试 Postman 可空 多种来源 不传 sampleSource 返回全部
SYJC-API-004 新增 合法全字段 接口测试 Postman §5.1 已登录 POST testDatesampleSource=1testQuantity=100positiveCount=5 成功;detectionRate=0.05
SYJC-API-005 新增 零检测量合法 接口测试 Postman §5.1 已登录 testQuantity=0, positiveCount=0 成功;detectionRate=0
SYJC-API-006 新增 非法样本来源 接口测试 Postman §3.2 已登录 sampleSource=9 失败
SYJC-API-007 新增 必填缺失 接口测试 Postman 必填 已登录 testDate 失败
SYJC-API-008 新增 阳性大于检测量 接口测试 Postman §5.1 已登录 testQuantity=10, positiveCount=11 失败
SYJC-API-009 新增 零检测量阳性非零 接口测试 Postman §5.1 已登录 testQuantity=0, positiveCount=1 失败
SYJC-API-010 新增 客户端检出率被忽略 接口测试 Postman §3.3.1 已登录 POSTdetectionRate=0.99,实际 10/1 成功;详情 detectionRate=0.1
SYJC-API-011 详情 有效 id 接口测试 Postman §5.5 已登录 GET .../labDetection/{id} testDatesampleSource、数量、detectionRate、审计字段
SYJC-API-012 详情 无效 id 接口测试 Postman 异常 已登录 不存在 id 404 或业务失败
SYJC-API-013 修改 合法修改并重算率 接口测试 Postman §5.3 记录 100/10 PUTtestQuantity=50, positiveCount=5 成功;detectionRate=0.1
SYJC-API-014 修改 修改后阳性超量 接口测试 Postman §3.2 有效记录 PUT positiveCount 大于 testQuantity 失败;数据不变
SYJC-API-015 修改 携带检出率被忽略 接口测试 Postman §3.3.1 有效记录 PUTdetectionRate=0.5,数量 10/2 成功;detectionRate=0.2
SYJC-API-016 删除 单条删除 接口测试 Postman §5.4 已登录 DELETE .../{id} 成功;详情不可查
SYJC-API-017 删除 批量删除 接口测试 Postman 批量 多条 id DELETE id1,id2 均不可查
SYJC-API-018 端到端 登记至删除 接口测试 Postman §4 已登录 新增→列表→详情→改→再详情→删 各步成功;删除后列表无该条
SYJC-API-019 鉴权 未登录 接口测试 curl 安全 无 Token GET .../list 401 或统一未登录
SYJC-API-020 权限 无写权限 接口测试 Postman 越权 仅 list 权限 POST / PUT / DELETE 无权限失败
SYJC-API-021 响应 失败可读 接口测试 Postman §8 已登录 触发 API-008、009、014 codemsg 可区分场景
SYJC-API-022 列表 检疫点精确筛选 接口测试 Postman §5.2 两检疫点各一条 quarantineStationId=2 仅该站记录
SYJC-API-023 下拉 检疫点选项 接口测试 Postman §3.6 库有正常/停业站 GET .../quarantineStationOptions operate_status=1;含 idstationName
SYJC-API-024 新增 检疫点必填 接口测试 Postman §5.1 已登录 POSTquarantineStationId 失败
SYJC-API-025 新增 非正常检疫站 接口测试 Postman §2.5 停业站 id=3 quarantineStationId=3 失败

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
SYJC-UI-001 列表 默认加载排序 UI 测试 Playwright+Chrome §5.2 已登录;有数据 进入「实验室检测」 分页默认 20;检测日期新在前
SYJC-UI-002 列表 样本来源筛选 UI 测试 Playwright+Chrome 精确 含多种来源 选「调运检疫」→搜索 仅对应行
SYJC-UI-003 列表 重置筛选 UI 测试 Playwright+Chrome 恢复 已筛选 点「重置」 条件清空;显示全部
SYJC-UI-004 列表 操作列完整 UI 测试 Playwright+Chrome §6 任意有效行 查看操作列 查看、编辑、删除可见(按权限)
SYJC-UI-005 新增 合法提交 UI 测试 Playwright+Chrome §5.1 已登录 新增→填日期、来源、检测量 100、阳性 8→确定 成功;列表检出率显示 8.00%(或 8%)
SYJC-UI-006 新增 必填校验 UI 测试 Playwright+Chrome 必填 已登录 漏选样本来源或空检测量→提交 校验失败,未提交
SYJC-UI-007 新增 阳性大于检测量 UI 测试 Playwright+Chrome §5.1 已登录 检测量 10、阳性 11→提交 提示「阳性检出数不能大于检测量」等
SYJC-UI-008 新增 检出率只读 UI 测试 Playwright+Chrome §2.3 已登录 打开新增表单;改检测量/阳性 检出率自动变化且不可手输
SYJC-UI-009 编辑 修改成功并重算率 UI 测试 Playwright+Chrome §5.3 已有行 编辑→检测量改 200、阳性 20→保存 列表检出率 10.00%
SYJC-UI-010 编辑 任意记录可编辑 UI 测试 Playwright+Chrome §5.3 旧数据行 点「编辑」并保存 无「已结案不可改」类拦截
SYJC-UI-011 删除 单条确认删除 UI 测试 Playwright+Chrome §5.4 任意行 删除→确认 行消失
SYJC-UI-012 删除 取消确认 UI 测试 Playwright+Chrome 确认框 任意行 删除→取消 行仍在
SYJC-UI-013 删除 批量删除 UI 测试 Playwright+Chrome 批量 多条 勾选→批量删→确认 选中均消失
SYJC-UI-014 详情 字段完整 UI 测试 Playwright+Chrome §5.5 任意记录 点「查看」 含日期、来源、检测量、阳性、检出率、创建时间等
SYJC-UI-015 端到端 全流程 UI 集成 Playwright+Chrome §4 可新增 新增→筛选→编辑→查看→删除 与需求一致
SYJC-UI-016 权限 只读账号 UI 测试 Playwright+Chrome §9 无 add/edit/remove 登录进模块 无对应按钮或操作拒绝
SYJC-UI-017 错误提示 业务失败可读 UI 测试 Playwright+Chrome §8 已登录 触发阳性超量提交 Message 含明确原因
SYJC-UI-018 列表 列展示单位 UI 测试 Playwright+Chrome §2.2 有数据 查看列表检测量/阳性列 带「份」或与需求一致的单位展示

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

  • 安装:npm i -D @playwright/testnpx playwright install chromium;配置 use: { channel: 'chrome' }
  • 导航:page.getByText('实验室检测')goto('/diseaseDetection/labDetection')(以实际路由为准)。
  • 筛选:el-select 选样本来源后点「搜索」。
  • 检出率:新增/编辑表单输入检测量、阳性后 expect(rateInput).toBeDisabled() 且文案含 %;如 100 + 88.00%
  • 删除:行内「删除」→ el-message-box 确认;批量勾选后点工具栏删除。

覆盖对照

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

功能需求追溯(自查)

需求章节 要点 主要对应用例
§5.1 新增 四字段必填、检出率系统算 UT-001~010;API-004~010;UI-005~008
§5.2 列表 来源筛选、排序 UT-013~014;API-001~003;UI-001~003
§5.3 修改 均可改、重算率 UT-011~012;API-013~015;UI-009~010
§5.4 删除 均可删、批量 UT-015;API-016~017;UI-011~013
§5.5 详情 全字段含检出率 API-011;UI-014
§2.3 检出率 公式、零检测量、只读 UT-006~009;API-005、010;UI-008
§6 矩阵 查看/改/删 UI-004、010
§8 错误 可读提示 API-021;UI-017

修订记录

版本 说明
1.0 初版:单元 15、接口 21、UI 18;Playwright+Chrome;Base /diseaseDetection/labDetection