西藏巴青项目

畜牧医疗资源管理测试用例.md 20KB

畜牧医疗资源管理 — 测试用例

依据:畜牧医疗资源管理功能需求.md畜牧医疗资源管理技术方案.md
接口 Base Path/diseaseTreatments/medicalResource;鉴权与若依一致(Cookie / Token)。

通用前置(无特殊说明):具备本模块全套权限的账号已登录(diseaseTreatment:medicalResource:list|query|add|edit|remove|publish|offline|assignAccount)。biz_medical_resource 宜预置(del_flag=0):

样本 类型编码 名称 发布态要点
V1 004001 兽医 张兽医 未发布;未分配账号
V2 004001 兽医 李兽医 已发布
T1 004002 团队 牧业专家组 未发布
O1 004003 机构 县动物医院 已发布
O2 004003 机构 乡镇诊所 已下架(offline_time 非空)
E1 004004 设备 B超仪01 未发布

兽医合法 Body 片段resourceType=004001resourceName=测试兽医introduction=简介contactPhone=13800138000affiliatedUnit=县畜牧局detailAddress=某某路1号consultModes=[1,2]serviceArea=全县feeStandard=100serviceStartTime=08:00serviceEndTime=18:00serviceWeekdays=[1,2,3,4,5]photoFileUrl/photoFilePath 来自上传接口(不含 maxDailyAppointments)。

机构合法 Body 片段resourceType=004003):resourceNameorgLevel 必填;personInChargemaxDailyAppointments、照片/介绍/地址/手机/服务时段等为选填。

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


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-XMZYGL-UT-001 参数校验 兽医服务时段 单元测试 JUnit5 §5.4 结束早于开始;相等;合法 前两种失败;08:0018:00 通过
ZCZX-XMZYGL-UT-002 参数校验 手机号 单元测试 JUnit5 §5.2 非法号、合法 11 位 非法失败;13800138000 通过
ZCZX-XMZYGL-UT-003 参数校验 名称/介绍长度 单元测试 JUnit5 §5.4~5.7 名称 0/11 字;介绍 501 字 超限失败;1~10/500 通过
ZCZX-XMZYGL-UT-004 参数校验 收费标准 单元测试 JUnit5 §5.4 0、负数、正数 非正数失败;100 通过
ZCZX-XMZYGL-UT-005 参数校验 接诊方式/服务周日 单元测试 JUnit5 §5.4 接诊方式空数组失败;required=false 时服务周日空通过 与必填开关一致
ZCZX-XMZYGL-UT-005a 参数校验 兽医资料选填 单元测试 JUnit5 §5.4 无照片/介绍/手机/单位/地址/服务区域/收费,保留接诊等必填 通过
ZCZX-XMZYGL-UT-005c 参数校验 兽医收费选填 单元测试 JUnit5 §5.4 feeStandard=null validateRowForSave 通过;填 0 仍失败
ZCZX-XMZYGL-UT-005b 参数校验 兽医手机格式 单元测试 JUnit5 §5.4 填非法手机 validateRowForSave 失败
ZCZX-XMZYGL-UT-006 参数校验 团队成立时间 单元测试 JUnit5 §5.5 未来日期;合法过去日期 未来失败(若填写);未填通过
ZCZX-XMZYGL-UT-006b 参数校验 团队资料选填 单元测试 JUnit5 §5.5 仅团队名称,其余资料字段空 通过
ZCZX-XMZYGL-UT-006c 参数校验 机构资料选填 单元测试 JUnit5 §5.6 机构名称+机构级别;其余资料字段空 通过
ZCZX-XMZYGL-UT-006d 参数校验 机构单日接诊 单元测试 JUnit5 §5.6 填 0 或负数 失败;正整数或未填通过
ZCZX-XMZYGL-UT-006e 参数校验 设备资料选填 单元测试 JUnit5 §5.7 仅设备名称,照片/介绍/型号/隶属单位空 通过
ZCZX-XMZYGL-UT-006f 参数校验 设备型号长度 单元测试 JUnit5 §5.7 型号 11 字 失败
ZCZX-XMZYGL-UT-007 参数校验 类型字段矩阵 单元测试 JUnit5 §5.3、§2.1 设备行带 contactPhone;兽医缺 feeStandard 设备校验不要求手机;兽医缺收费失败
ZCZX-XMZYGL-UT-007a 参数校验 兽医单日接诊 单元测试 JUnit5 §5.3、草稿 §2 合法兽医不传 maxDailyAppointments;传入 20 后 validateRowForSave 均通过;后者保存对象 maxDailyAppointmentsnull
ZCZX-XMZYGL-UT-008 参数校验 照片路径 单元测试 JUnit5 §5.2 /profile 前缀;jpg 路径 非法路径失败;合法通过
ZCZX-XMZYGL-UT-009 发布态 已发布不可改 单元测试 JUnit5 §5.8、§6 publish_status=1 validateForUpdate 失败
ZCZX-XMZYGL-UT-010 发布态 仅已发布可下架 单元测试 JUnit5 §5.11 未发布/已发布 validateOffline publish_status=1 通过
ZCZX-XMZYGL-UT-011 发布态 三态解析 单元测试 JUnit5 §2.1 三组库记录 解析界面状态 未发布/已发布/已下架 与 offline_time 一致
ZCZX-XMZYGL-UT-012 分配账号 类型与次数 单元测试 JUnit5 §5.12 团队 type=2;已分配 validateAssignAccount 团队失败;已分配失败
ZCZX-XMZYGL-UT-013 Service 新增落库 单元测试 JUnit5+Mockito §5.2 Mock Mapper insert 合法兽医 publish_status=0offline_time 空;account_assigned=0
ZCZX-XMZYGL-UT-014 Service 发布 单元测试 JUnit5+Mockito §5.11 未发布 V1 publish(id) publish_status=1publish_time 非空
ZCZX-XMZYGL-UT-015 Service 下架保留发布时间 单元测试 JUnit5+Mockito §5.11 已发布 V2 offline(id) publish_status=0offline_time 非空;publish_time 保留
ZCZX-XMZYGL-UT-016 Service 逻辑删除 单元测试 JUnit5+Mockito §5.10 未发布 remove(id) del_flag=2
ZCZX-XMZYGL-UT-017 Service 删除有关联 单元测试 JUnit5+Mockito §2.5 hasReference=true remove ServiceException
ZCZX-XMZYGL-UT-018 Service 分配账号成功 单元测试 JUnit5+Mockito §5.12 未发布兽医;Mock 用户服务 assignAccount(id) account_assigned=1;写 sys_user_id;绑定角色 100
ZCZX-XMZYGL-UT-019 Service 删除联动删账号 单元测试 JUnit5+Mockito §5.10、草稿 §10 未发布已分配;sys_user_id=88 deleteByIds 调用 deleteLinkedAccountdel_flag=2
ZCZX-XMZYGL-UT-020 分配账号 机构角色 102 单元测试 JUnit5 §5.12、草稿 §11 defaultRoleId('004003') 返回 102
ZCZX-XMZYGL-UT-021 Mapper 列表筛选 SQL 单元测试 JUnit5 §3.1 检查 XML del_flag=0resource_type=resource_name LIKEcreate_time DESC
ZCZX-XMZYGL-UT-022 Mapper 发布态筛选 单元测试 JUnit5 §2.1 publishStatus=2 条件 offline_time IS NOT NULL

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-XMZYGL-API-001 列表 默认分页 接口测试 Postman §5.1 有多条样本 GET /list?resourceType=004001 code=200rows≤20;create_time 倒序
ZCZX-XMZYGL-API-002 列表 名称模糊 接口测试 Postman §2.6 有 V1「张兽医」 resourceName=张 含 V1;全名「张兽医」亦命中
ZCZX-XMZYGL-API-003 列表 发布状态筛选 接口测试 Postman §2.6 有 V2 已发布 publishStatus=1 仅已发布记录
ZCZX-XMZYGL-API-004 列表 已下架筛选 接口测试 Postman §2.4 有 O2 publishStatus=2 含 O2
ZCZX-XMZYGL-API-005 列表 不含已删除 接口测试 Postman §2.5 某 id 已删 GET /list 无该 id
ZCZX-XMZYGL-API-006 列表 缺 resourceType 接口测试 Postman §3.1 已登录 不传 resourceType 参数错误或空列表(以实现为准)
ZCZX-XMZYGL-API-007 新增 兽医全字段 接口测试 Postman §5.4 已登录;已上传照片 POST 合法兽医 Body code=200publishStatus 对应未发布
ZCZX-XMZYGL-API-008 新增 专家团队 接口测试 Postman §5.5 已登录 POST resourceType=004002 合法字段 成功;无兽医专属字段必填
ZCZX-XMZYGL-API-009 新增 诊疗机构 接口测试 Postman §5.6 已登录 POST resourceType=004003;机构名称+机构级别 成功;照片/介绍/服务时段等可省略
ZCZX-XMZYGL-API-010 新增 医疗设备 接口测试 Postman §5.7 已登录 POST resourceType=004004;仅设备名称 成功;照片/介绍/型号/隶属单位可省略
ZCZX-XMZYGL-API-011 新增 手机号非法 接口测试 Postman §5.2 已登录 contactPhone=123 code≠200msg 含联系方式
ZCZX-XMZYGL-API-012 新增 介绍仅空白 接口测试 Postman §5.2 已登录 introduction=" " 失败
ZCZX-XMZYGL-API-013 新增 服务时段非法 接口测试 Postman §5.4 已登录 serviceEndTime 早于 serviceStartTime 失败
ZCZX-XMZYGL-API-014 详情 有效 id 接口测试 Postman §5.9 有 V1 GET /{id} 全字段;consultModes 为数组
ZCZX-XMZYGL-API-015 详情 无效/已删 id 接口测试 Postman 异常 已登录 不存在或已删 id 失败或 data
ZCZX-XMZYGL-API-016 修改 未发布改备注 接口测试 Postman §5.8 有 V1 PUTintroduction 成功;resourceType 不变
ZCZX-XMZYGL-API-017 修改 已发布禁止 接口测试 Postman §5.8、§6 有 V2 已发布 PUT 任意字段 失败;库不变
ZCZX-XMZYGL-API-018 修改 改 resourceType 无效 接口测试 Postman §5.2 有 V1 PUTresourceType=004003 失败或忽略;库仍为 004001
ZCZX-XMZYGL-API-019 发布 未发布发布 接口测试 Postman §5.11 有 V1 POST /publish/{id} publish_status=1;有 publishTime
ZCZX-XMZYGL-API-020 发布 重复发布 接口测试 Postman §5.11 V2 已发布 再次 publish 失败;「该资源已发布」
ZCZX-XMZYGL-API-021 下架 已发布下架 接口测试 Postman §5.11 有 V2 POST /offline/{id} publish_status=0offline_time 有值
ZCZX-XMZYGL-API-022 下架 未发布不可下架 接口测试 Postman §5.11 有 V1 POST /offline/{id} 失败
ZCZX-XMZYGL-API-023 删除 未发布逻辑删 接口测试 Postman §5.10 无关联新行 DELETE /{id} 成功;列表不可见
ZCZX-XMZYGL-API-023a 删除 已分配联动删账号 接口测试 Postman §5.10、草稿 §10 未发布兽医已 assignAccount DELETE /{id} 资源不可见;sys_user 对应用户已删
ZCZX-XMZYGL-API-024 删除 已发布禁止 接口测试 Postman §5.10 有 V2 DELETE 失败
ZCZX-XMZYGL-API-025 分配账号 兽医成功 接口测试 Postman §5.12 V1 未分配 POST /assignAccount/{id} accountAssigned=1;登录名拼音+id;角色 100
ZCZX-XMZYGL-API-025a 分配账号 机构成功 接口测试 Postman §5.12 未发布机构 POST /assignAccount/{id} accountAssigned=1;角色 102
ZCZX-XMZYGL-API-026 分配账号 重复分配 接口测试 Postman §5.12 已分配行 再次 assignAccount 失败
ZCZX-XMZYGL-API-027 分配账号 团队禁止 接口测试 Postman §5.12 有 T1 assignAccount 失败
ZCZX-XMZYGL-API-028 分配账号 已发布禁止 接口测试 Postman §5.12 有 V2 assignAccount 失败
ZCZX-XMZYGL-API-029 端到端 下架后编辑再发布 接口测试 Postman §4.2 有 O2 或新建机构 offlinePUTpublish 各步 code=200;最终已发布
ZCZX-XMZYGL-API-030 端到端 全流程 接口测试 Postman §4 已登录 POSTlistGETassignAccountpublishofflineDELETE 关键步成功;删除前须下架
ZCZX-XMZYGL-API-031 鉴权 未登录 接口测试 curl 安全 无 Token GET /list?resourceType=004001 401 或统一未登录
ZCZX-XMZYGL-API-032 权限 无发布权限 接口测试 Postman §6 无 publish POST /publish/1 无权限失败
ZCZX-XMZYGL-API-033 权限 无分配账号权限 接口测试 Postman §6 无 assignAccount POST /assignAccount/1 无权限失败
ZCZX-XMZYGL-API-034 响应 失败可读 接口测试 Postman §8 已登录 触发已发布修改、重复分配 msg 可区分场景

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-XMZYGL-UI-001 列表 四 Tab 与列展示 UI 测试 Playwright+Chrome §5.1、§2.3 已登录;有各类型数据 进入模块;切换四个 Tab 每 Tab 仅本类型;列含名称、介绍摘要、发布状态、操作
ZCZX-XMZYGL-UI-002 列表 Tab 与下拉联动 UI 测试 Playwright+Chrome §2.3 已登录 切换 Tab;改顶部资源类型下拉 Tab 与下拉一致
ZCZX-XMZYGL-UI-003 列表 名称模糊筛选 UI 测试 Playwright+Chrome §2.6 有「张兽医」 填「张」→搜索 列表含匹配行
ZCZX-XMZYGL-UI-004 列表 发布状态筛选 UI 测试 Playwright+Chrome §2.6 有已发布样本 选「已发布」→搜索 仅已发布行
ZCZX-XMZYGL-UI-005 列表 重置 UI 测试 Playwright+Chrome §5.1 已筛选 搜索→重置 条件清空;列表恢复
ZCZX-XMZYGL-UI-006 新增 动态表单-兽医 UI 测试 Playwright+Chrome §5.4 有 add 权限 新增→选兽医→填必填→上传照片→确定 成功;列表未发布;含接诊方式等字段
ZCZX-XMZYGL-UI-007 新增 动态表单-团队 UI 测试 Playwright+Chrome §5.5 已登录 新增→选专家团队→填必填→确定 无接诊方式字段;成功
ZCZX-XMZYGL-UI-008 新增 类型切换字段变化 UI 测试 Playwright+Chrome §4.3 打开新增 选兽医→改选设备 表单字段集切换;无兽医专属项残留
ZCZX-XMZYGL-UI-009 新增 必填校验 UI 测试 Playwright+Chrome §5.2 新增弹窗 留空姓名→确定 校验失败;不关闭
ZCZX-XMZYGL-UI-010 新增 照片格式/大小 UI 测试 Playwright+Chrome §5.2 新增 上传非图或超 10MB(若可测) 失败提示
ZCZX-XMZYGL-UI-011 查看 只读详情 UI 测试 Playwright+Chrome §5.9 任意行 点击查看 字段只读;含发布状态、审计信息
ZCZX-XMZYGL-UI-012 操作列 未发布按钮集 UI 测试 Playwright+Chrome §6 未发布行 查看操作列 有查看、编辑、删除、发布;兽医/机构有分配账号
ZCZX-XMZYGL-UI-013 操作列 已发布按钮集 UI 测试 Playwright+Chrome §6 已发布行 查看操作列 有查看、下架;无编辑、删除、分配账号
ZCZX-XMZYGL-UI-014 编辑 未发布修改 UI 测试 Playwright+Chrome §5.8 未发布行 编辑→改介绍→确定 列表已更新
ZCZX-XMZYGL-UI-015 编辑 已发布不可进 UI 测试 Playwright+Chrome §5.8 已发布行 尝试编辑 无编辑入口或提示先下架
ZCZX-XMZYGL-UI-016 发布下架 发布确认 UI 测试 Playwright+Chrome §5.11 未发布行 发布→确认 状态变已发布
ZCZX-XMZYGL-UI-017 发布下架 下架确认 UI 测试 Playwright+Chrome §5.11 已发布行 下架→确认 状态变已下架或未发布标签
ZCZX-XMZYGL-UI-018 删除 确认删除 UI 测试 Playwright+Chrome §5.10 未发布行 删除→确认 行消失;取消则不删
ZCZX-XMZYGL-UI-018a 删除 已分配联动删账号 UI 测试 Playwright+Chrome §5.10、草稿 §10 未发布已分配兽医 删除→确认 列表无该行;该登录名不可再登录
ZCZX-XMZYGL-UI-019 分配账号 兽医分配 UI 测试 Playwright+Chrome §5.12 未发布未分配兽医 点分配账号→确认 成功提示;行显示已分配
ZCZX-XMZYGL-UI-020 分配账号 团队无入口 UI 测试 Playwright+Chrome §5.12 专家团队 Tab 查看操作列 无分配账号
ZCZX-XMZYGL-UI-021 地图标点 本期不展示 UI 测试 Playwright+Chrome §5.13 机构/设备 Tab 查看列表操作 无地图标点或置灰并说明
ZCZX-XMZYGL-UI-022 权限 只读角色 UI 测试 Playwright+Chrome §6 仅 list/query 角色 进入模块 无新增/编辑/删除/发布/下架/分配账号
ZCZX-XMZYGL-UI-023 端到端 运营全流程 UI 集成 Playwright+Chrome §4.2 权限齐备 新增机构→分配账号→发布→下架→编辑→再发布→删除 状态与按钮符合矩阵;无报错

四、覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-013~018 API-007~010、016、019、023~030 UI-006~011、014、016~019、023
异常/校验 UT-001~008 API-011~013、017~018、022~024 UI-009~010、015
发布状态机 UT-009~011 API-003~004、019~022、029 UI-004、012~017
分配账号 UT-012、018 API-025~028 UI-019~020
四类资源 UT-007 API-007~010 UI-006~008
列表筛选 UT-019~020 API-001~006 UI-001~005
逻辑删除 UT-016~017、019 API-005、023~024、023a UI-018、018a
权限/鉴权 API-031~033 UI-022
地图标点(不做) UI-021

五、功能需求追溯

需求章节 要点 主要用例
§5.1 列表 Tab、模糊、发布状态筛选 API-001~006;UI-001~005
§5.2~5.7 新增/字段 四类表单、校验 UT-001~008;API-007~013;UI-006~010
§5.8 修改 仅未发布/已下架 API-016~018;UI-014~015
§5.9 查看 只读 API-014~015;UI-011
§5.10 删除 逻辑删 UT-016~017;API-023~024;UI-018
§5.11 发布下架 状态迁移 UT-009~011、014~015;API-019~022、029;UI-016~017
§5.12 分配账号 兽医/机构、一次 UT-012、018;API-025~028;UI-019~020
§5.13 地图标点 不做 UI-021
§6 权限 按钮级 API-031~033;UI-022

六、Playwright 实施提示

  • 安装:npm i -D @playwright/testnpx playwright install chrome
  • 配置:use: { channel: 'chrome', locale: 'zh-CN', baseURL: 'http://localhost:80' }storageState 复用登录态。
  • 路由:page.goto('/diseaseTreatment/medicalResource')(以菜单 component 为准)。
  • 定位示例:page.getByRole('tab', { name: '兽医人员库' })page.getByRole('button', { name: '新增' })page.getByLabel('兽医姓名')

七、修订记录

版本 说明
1.0 初版:单元 20、接口 34、UI 23;覆盖 CRUD、发布下架、分配账号、四类动态表单;Playwright+Chrome
1.1 对齐草稿 §10/§11:删除联动删账号用例;分配角色 100/102 断言;UT/API/UI 编号顺延