西藏巴青项目

我的预约(专家)测试用例.md 20KB

我的预约(专家)— 测试用例

依据:我的预约(专家)功能需求.md我的预约(专家)技术方案.md
接口 Base Path/techService/myAppointment/expert;鉴权与若依一致(Cookie / Token)。

通用前置(无特殊说明):专家账号 C 已通过「畜牧科技资源管理」为专家 Z1resource_type=004005account_assigned=1sys_user_id=C)分配账号并绑定角色 exp(常见 role_id=101);具备权限 techService:expertMyAppointment:list|query|confirm|reject|complete|reviewListbiz_service_appointment 宜预置:

样本 归属 状态 要点
E0 Z1,provider_type=3 待确认 0 可操作确认/拒绝
E1 Z1 已确认 1 可操作完成接诊;canComplete=true
E2 Z1 已拒绝 2 reject_reason 非空
E3 Z1 已取消 3 无确认/拒绝
E4 Z1 已完成 4 有关联评价记录
E4n Z1 已完成 4 评价(测空态)
EX Z2(另一专家) 待确认 0 账号 C 不可见/不可操作
V0 兽医 provider_type=1 待确认 0 专家列表不可见
O1 机构 provider_type=2 已预约 5 专家列表不可见

评价样本(biz_service_appointment_review,挂 E4)reviewer_name=才让punctuality_score=5attitude_score=5guidance_score=4summary 非空。

拒绝 Body{"rejectReason":"时段冲突无法接诊"}(1~100 字,trim 后计数)。

界面(UI)测试Playwright + Chromiumchannel: 'chrome' 使用本机 Google Chrome);菜单示例「牧业养殖科技服务 → 我的预约(专家)」。


一、单元测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-WDYYZJ-UT-001 参数校验 拒绝理由空/空白 单元测试 JUnit5 §6.4、§9 validateRejectReason(null)""" " 失败;msg 含「请填写拒绝理由」
ZCZX-WDYYZJ-UT-002 参数校验 拒绝理由长度 单元测试 JUnit5 §6.4 1 字、100 字、101 字(trim 后) 1~100 通过;101 失败
ZCZX-WDYYZJ-UT-003 参数校验 预约日期范围 单元测试 JUnit5 §6.1、§9 startDate 晚于 endDate;相等;合法区间 前者失败;后两者通过
ZCZX-WDYYZJ-UT-004 状态规则 可确认/可拒绝 单元测试 JUnit5 §4.1、§7 canConfirmOrReject(0~4) status=0 为 true
ZCZX-WDYYZJ-UT-004a 状态规则 可完成接诊 单元测试 JUnit5 §6.5、§7 canCompleteVetOrExpert(0~4) status=1 为 true
ZCZX-WDYYZJ-UT-005 状态规则 专家合法状态集 单元测试 JUnit5 §4.1、技术方案 §2.2 status=5 对专家模块 列表筛选非法;不出现「已预约」标签
ZCZX-WDYYZJ-UT-006 状态展示 五态标签解析 单元测试 JUnit5 §6.1 resolveLabel(0~4) 待确认/已确认/已拒绝/已取消/已完成
ZCZX-WDYYZJ-UT-007 范围解析 当前专家 ID 单元测试 JUnit5+Mockito 技术方案 §2.4 Mock 用户 C;库有 Z1 ExpertProviderResolver.resolveProviderId 返回 Z1.id
ZCZX-WDYYZJ-UT-008 范围解析 未绑定专家 单元测试 JUnit5+Mockito §9 biz_tech_resource 绑定 resolveProviderId 返回 null
ZCZX-WDYYZJ-UT-009 Service 列表 scope 单元测试 JUnit5+Mockito §6.1 Mock;有 E0、EX selectList 账号 C provider_type=3provider_id=Z1;无 EX
ZCZX-WDYYZJ-UT-010 Service 确认成功 单元测试 JUnit5+Mockito §6.3 Mock E0 confirm status=1confirm_time 非空
ZCZX-WDYYZJ-UT-011 Service 拒绝成功 单元测试 JUnit5+Mockito §6.4 Mock E0 reject(id, reason) status=2;理由与时间写入
ZCZX-WDYYZJ-UT-012 Service 非待确认确认 单元测试 JUnit5+Mockito §6.3 Mock E1 confirm 失败;不允许确认接诊
ZCZX-WDYYZJ-UT-013 Service 已取消不可确认 单元测试 JUnit5+Mockito §4.3 Mock E3 confirm 失败;msg 含已取消或不允许
ZCZX-WDYYZJ-UT-014 Service 越权-他专家 单元测试 JUnit5+Mockito §2.2 目标 EX getById/confirm 失败;无权操作
ZCZX-WDYYZJ-UT-015 Service 未绑定无法操作 单元测试 JUnit5+Mockito §9 无 Z1 绑定 confirm/reject 失败;未绑定专家资源
ZCZX-WDYYZJ-UT-016 Service 详情已完成含评价 单元测试 JUnit5+Mockito §6.2 Mock E4+评价 getById 含三维度分与 summary
ZCZX-WDYYZJ-UT-017 Service 详情已完成无评价 单元测试 JUnit5+Mockito §6.2、§10 Mock E4n getById 无星级/综合评价或空
ZCZX-WDYYZJ-UT-018 Service 评价列表 scope 单元测试 JUnit5+Mockito §6.5 E4 已完成;EX 预约 reviewList(E4.id) 仅 E4 评价;非已完成失败
ZCZX-WDYYZJ-UT-019 Service 评价列表空 单元测试 JUnit5+Mockito §6.5 E4n 无评价行 reviewList 空列表或友好提示,不抛未处理异常
ZCZX-WDYYZJ-UT-020 Mapper 专家列表/更新 SQL 单元测试 JUnit5 技术方案 §3.3 审阅 XML selectExpert*/updateConfirm*/updateReject*/updateComplete* provider_type=3;完成 status=14
ZCZX-WDYYZJ-UT-022 Service 完成接诊成功 单元测试 JUnit5+Mockito §6.5 Mock E1 complete status=4
ZCZX-WDYYZJ-UT-023 Service 待确认不可完成 单元测试 JUnit5+Mockito §6.5 Mock E0 complete 失败;不允许完成接诊
ZCZX-WDYYZJ-UT-021 Mapper 评价查询 SQL 单元测试 JUnit5 技术方案 §3.2 审阅 XML selectReviewByAppointmentId appointment_id;含三维度与 summary

二、接口测试用例

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-WDYYZJ-API-001 列表 默认分页排序 接口测试 Postman §6.1 账号 C;Z1 多样本 GET /list code=200rows≤20;日期倒序
ZCZX-WDYYZJ-API-002 列表 预约人模糊 接口测试 Postman §6.1 E0 含关键字 appointeeName=片段 含 E0
ZCZX-WDYYZJ-API-003 列表 预约日期区间 接口测试 Postman §6.1 日期已知 startDateendDate 边界含当天
ZCZX-WDYYZJ-API-004 列表 状态精确筛选 接口测试 Postman §6.1 有 E2 status=2 均为已拒绝
ZCZX-WDYYZJ-API-005 列表 日期区间非法 接口测试 Postman §9 已登录 开始晚于结束 code≠200;日期提示
ZCZX-WDYYZJ-API-006 列表 状态 5 非法 接口测试 Postman §4.1 已登录 status=5 筛选无效或空(以实现为准)
ZCZX-WDYYZJ-API-007 列表 数据隔离-他专家 接口测试 Postman §2.2 有 EX 账号 C GET /list 无 EX
ZCZX-WDYYZJ-API-008 列表 数据隔离-兽医/机构 接口测试 Postman §3.5 有 V0、O1 账号 C GET /list 无 V0、O1
ZCZX-WDYYZJ-API-009 列表 未绑定专家 接口测试 Postman §9 无绑定 GET /list 空列表或绑定提示
ZCZX-WDYYZJ-API-010 列表 禁止传 providerId 接口测试 Postman 技术方案 §4.1 已登录 伪造 providerId 仍以 Z1 为准
ZCZX-WDYYZJ-API-011 详情 待确认全字段 接口测试 Postman §6.2 有 E0 GET /{id} 含时段、地址、需求;无评价字段
ZCZX-WDYYZJ-API-012 详情 已拒绝含理由 接口测试 Postman §6.2 有 E2 GET /{id} rejectReason 非空
ZCZX-WDYYZJ-API-013 详情 已完成含评价 接口测试 Postman §6.2 有 E4+评价 GET /{id} punctualityScore 等及 summary
ZCZX-WDYYZJ-API-014 详情 已完成无评价 接口测试 Postman §6.2、§10 有 E4n GET /{id} 评价字段空;不报错
ZCZX-WDYYZJ-API-015 详情 越权 id 接口测试 Postman §2.2 有 EX GET /{EX.id} 失败或无权
ZCZX-WDYYZJ-API-016 确认 待确认成功 接口测试 Postman §6.3 E0 POST /confirm/{id} code=200;库 status=1
ZCZX-WDYYZJ-API-017 确认 已确认禁止 接口测试 Postman §6.3 有 E1 POST /confirm/{E1.id} 失败;不允许确认
ZCZX-WDYYZJ-API-018 确认 已取消禁止 接口测试 Postman §4.3 有 E3 POST /confirm/{E3.id} 失败;含取消或不允许
ZCZX-WDYYZJ-API-019 确认 幂等重复 接口测试 Postman §4.3 已确认后再调 再次 confirm 失败
ZCZX-WDYYZJ-API-020 拒绝 合法理由 接口测试 Postman §6.4 待确认行 POST /reject/{id} Body 合法 status=2;理由落库
ZCZX-WDYYZJ-API-021 拒绝 理由为空 接口测试 Postman §6.4 待确认 Body 空理由 失败;请填写拒绝理由
ZCZX-WDYYZJ-API-022 拒绝 理由超长 接口测试 Postman §6.4 待确认 101 字 失败;不能超过 100 字
ZCZX-WDYYZJ-API-023 拒绝 非待确认 接口测试 Postman §6.4 有 E1 POST /reject/{E1.id} 失败;不允许拒绝
ZCZX-WDYYZJ-API-024 拒绝 越权 id 接口测试 Postman §2.2 有 EX 账号 C reject EX 失败;无权
ZCZX-WDYYZJ-API-025 评价 已完成有数据 接口测试 Postman §6.5 有 E4 GET /reviewList/{E4.id} code=200;含评价人、时间、综合评价
ZCZX-WDYYZJ-API-026 评价 已完成无数据 接口测试 Postman §6.5 有 E4n GET /reviewList/{E4n.id} 空列表或「暂无评价」
ZCZX-WDYYZJ-API-027 评价 非已完成禁止 接口测试 Postman §6.5、§7 有 E0 GET /reviewList/{E0.id} 失败;仅已完成可查看
ZCZX-WDYYZJ-API-028 评价 越权预约 接口测试 Postman §6.5 EX 已完成 账号 C 查 EX 评价 失败或无权
ZCZX-WDYYZJ-API-029 评价 无写评价接口 接口测试 Postman §5.2 已登录 POST .../review 404 或未实现
ZCZX-WDYYZJ-API-030 端到端 确认主流程 接口测试 Postman §8.1 新待确认 listGETconfirmlist 已确认;有完成接诊
ZCZX-WDYYZJ-API-039 完成接诊 已确认成功 接口测试 Postman §6.5 有 E1 POST /complete/{E1.id} code=200;库 status=4
ZCZX-WDYYZJ-API-040 完成接诊 待确认禁止 接口测试 Postman §6.5 有 E0 POST /complete/{E0.id} 失败
ZCZX-WDYYZJ-API-041 权限 无 complete 接口测试 Postman §7 无 complete POST /complete/{id} 无权限失败
ZCZX-WDYYZJ-API-042 端到端 完成+评价 接口测试 Postman §8.1 E1→完成;移动端评价后 complete→用户评价→reviewList 已完成可查评价
ZCZX-WDYYZJ-API-031 端到端 拒绝主流程 接口测试 Postman §8.1 新待确认 rejectGETlist 已拒绝;理由可见
ZCZX-WDYYZJ-API-032 端到端 评价主流程 接口测试 Postman §8.1 有 E4 GET 详情→reviewList 详情有星级;列表有三列
ZCZX-WDYYZJ-API-033 端到端 筛选组合 接口测试 Postman §6.1 多样本 人名+日期+status=0 同时满足
ZCZX-WDYYZJ-API-034 鉴权 未登录 接口测试 curl 安全 无 Token GET /list 401 或未登录
ZCZX-WDYYZJ-API-035 权限 无 list 接口测试 Postman §7 无 list GET /list 无权限
ZCZX-WDYYZJ-API-036 权限 无 confirm/reject 接口测试 Postman §7 仅 list/query confirm/reject 无权限
ZCZX-WDYYZJ-API-037 权限 无 reviewList 接口测试 Postman §7 无 reviewList GET /reviewList/{E4.id} 无权限
ZCZX-WDYYZJ-API-038 响应 失败 msg 可读 接口测试 Postman §9 已登录 触发越权、状态、理由、评价 msg 与 §9 一致

三、界面测试用例(UI)

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

用例编号 测试模块 测试项 测试类型 测试工具 测试目的 前置条件 测试步骤 预期结果
ZCZX-WDYYZJ-UI-001 列表 页面与完整列 UI 测试 Playwright+Chrome §6.1 账号 C;有样本 进入「我的预约(专家)」 列含预约人、日期、时段、电话、地址、需求、状态、拒绝理由、操作
ZCZX-WDYYZJ-UI-002 列表 时段格式 UI 测试 Playwright+Chrome §6.1 有 E0 查看时段列 HH:mm~HH:mm
ZCZX-WDYYZJ-UI-003 列表 预约人/日期/状态筛选 UI 测试 Playwright+Chrome §6.1 有 E2 填条件→搜索 仅匹配行
ZCZX-WDYYZJ-UI-004 列表 状态下拉五态 UI 测试 Playwright+Chrome §4.1 已登录 打开状态下拉 待确认/已确认/已拒绝/已取消/已完成;已预约
ZCZX-WDYYZJ-UI-005 列表 日期非法提示 UI 测试 Playwright+Chrome §9 已登录 结束早于开始→搜索 提示日期错误
ZCZX-WDYYZJ-UI-006 列表 重置 UI 测试 Playwright+Chrome §6.1 已筛选 搜索→重置 条件清空
ZCZX-WDYYZJ-UI-007 列表 默认分页 UI 测试 Playwright+Chrome §6.1 >20 条 进入列表 每页 20 条
ZCZX-WDYYZJ-UI-008 操作列 待确认按钮集 UI 测试 Playwright+Chrome §7 有 E0 查看操作列 查看、确认接诊、拒绝接诊
ZCZX-WDYYZJ-UI-009 操作列 已确认可完成 UI 测试 Playwright+Chrome §7 有 E1 查看操作列 有查看、完成接诊
ZCZX-WDYYZJ-UI-009a 操作列 已取消仅查看 UI 测试 Playwright+Chrome §7 E3 查看操作列 仅有「查看」
ZCZX-WDYYZJ-UI-010 操作列 已完成含查看评价 UI 测试 Playwright+Chrome §7 有 E4 查看 E4 操作列 有「查看」「查看评价」;无确认/拒绝
ZCZX-WDYYZJ-UI-011 操作列 已拒绝展示理由 UI 测试 Playwright+Chrome §6.1 有 E2 查看 E2 行 拒绝理由列有内容
ZCZX-WDYYZJ-UI-012 详情 只读弹窗全字段 UI 测试 Playwright+Chrome §6.2 有 E0 点击查看 基础字段只读;无评价区
ZCZX-WDYYZJ-UI-013 详情 已拒绝显示理由 UI 测试 Playwright+Chrome §6.2 有 E2 查看详情 展示拒绝理由
ZCZX-WDYYZJ-UI-014 详情 已完成评价区 UI 测试 Playwright+Chrome §6.2 有 E4 查看详情 展示三维度星与综合评价
ZCZX-WDYYZJ-UI-015 详情 已完成无评价空态 UI 测试 Playwright+Chrome §10 有 E4n 查看详情 「暂无评价」或等价;无补评按钮
ZCZX-WDYYZJ-UI-016 确认 二次确认成功 UI 测试 Playwright+Chrome §6.3 有 E0 确认接诊→确定 成功提示;状态已确认
ZCZX-WDYYZJ-UI-017 确认 取消二次确认 UI 测试 Playwright+Chrome §6.3 有 E0 确认→取消 仍为待确认
ZCZX-WDYYZJ-UI-018 拒绝 理由必填与超长 UI 测试 Playwright+Chrome §6.4 有 E0 空理由提交;101 字提交 前端或提交后提示
ZCZX-WDYYZJ-UI-019 拒绝 合法提交成功 UI 测试 Playwright+Chrome §6.4 待确认行 填 1~100 字→确定 已拒绝;列表可见理由
ZCZX-WDYYZJ-UI-020 评价 查看评价弹窗 UI 测试 Playwright+Chrome §6.5 有 E4 点击查看评价 列表含评价人、评价时间、综合评价
ZCZX-WDYYZJ-UI-021 评价 无评价空态 UI 测试 Playwright+Chrome §6.5 有 E4n 点击查看评价 「暂无评价」;不崩溃
ZCZX-WDYYZJ-UI-022 评价 非已完成无入口 UI 测试 Playwright+Chrome §7 有 E0 查看操作列 无「查看评价」
ZCZX-WDYYZJ-UI-023 权限 只读/缺按钮角色 UI 测试 Playwright+Chrome §7 仅 list/query 待确认行 无确认/拒绝或点击无权限
ZCZX-WDYYZJ-UI-024 范围 未绑定账号 UI 测试 Playwright+Chrome §9 无专家绑定 进入菜单 无菜单或列表空
ZCZX-WDYYZJ-UI-026 完成接诊 成功 UI 测试 Playwright+Chrome §6.5 有 E1 完成接诊→确定 状态已完成
ZCZX-WDYYZJ-UI-027 权限 无 complete UI 测试 Playwright+Chrome §7 无 complete E1 行 无完成接诊按钮
ZCZX-WDYYZJ-UI-025 端到端 接单+完成+评价 UI 集成 Playwright+Chrome §8.1 权限齐备 确认→完成接诊→查评价 状态与按钮符合矩阵

四、覆盖对照

类别 单元 UT 接口 API 界面 UI
正常流程 UT-009~011、016~018 API-001~004、011~013、016、020、025~032 UI-001~004、007~010、012~016、019~020、025
异常/校验 UT-001~003 API-005~006、021~022 UI-005、018
状态机/操作矩阵 UT-004~006、012~013、022~023 API-017~019、023、027、039~040 UI-008~009、009a、026
完成接诊 UT-004a、022~023 API-039~042 UI-009、026~027
数据范围/隔离 UT-007~009、014 API-007~010、015、024、028 UI-024
拒绝理由 UT-001~002 API-020~024 UI-018~019
评价(专家独有) UT-016~019、021 API-013~014、025~029 UI-010、014~015、020~022
权限/鉴权 UT-015 API-034~037 UI-023
与兽医差异 UT-005 API-029 UI-010、014(兽医无)
与机构差异 UT-005 API-008 UI-004(无已预约)

五、功能需求追溯

需求章节 要点 主要用例
§6.1 列表 范围、筛选、完整列 API-001~010;UI-001~007
§6.2 详情 只读、拒绝理由、已完成评价区 API-011~014;UI-012~015
§6.3 确认 仅待确认 UT-010、012;API-016~019;UI-016~017
§6.4 拒绝 理由 1~100 字 UT-001~002、011;API-020~024;UI-018~019
§6.5 完成接诊 仅已确认→已完成 UT-004a、022~023;API-039~042;UI-009、026~027
§6.5 查看评价 仅已完成、三列列表 UT-018~019;API-025~028;UI-020~022
§4.3 并发幂等 重复操作、已取消 API-018~019
§2.2 数据范围 仅当前专家 UT-009、014;API-007~010、015;UI-024
§5.2 不做代评 无写评价接口 API-029
§7 权限 六类按钮含 complete API-035~037、041;UI-023、027
§9 提示 文案一致 API-005、038;UI-005、018、021

六、Playwright 实施提示

  • 安装:npm i -D @playwright/testnpx playwright install chrome
  • 配置:use: { channel: 'chrome', locale: 'zh-CN', baseURL: 'http://localhost:80' }storageState 复用专家账号 C 登录态。
  • 路由:page.goto('/techService/myAppointment/expert')(以菜单 component 为准)。
  • 定位示例:page.getByPlaceholder('请输入预约人')page.getByRole('button', { name: '确认接诊' })page.getByRole('button', { name: '拒绝接诊' })page.getByRole('button', { name: '完成接诊' })page.getByRole('button', { name: '查看评价' })
  • 数据准备:「畜牧科技资源管理」为 Z1 分配账号;插入 provider_type=3 各状态样本;E4 配套 biz_service_appointment_review 行。

七、修订记录

版本 说明
1.0 初版:单元 21、接口 38、UI 25;覆盖列表/详情/确认/拒绝/评价、五态、三端隔离、与兽医/机构差异;Playwright+Chrome
1.1 增补完成接诊 UT/API/UI;权限含 complete;修正 Base Path