依据:
AI诊断(兽医、机构)功能需求.md(v1.1)、AI诊断(兽医、机构)技术方案.md(v1.6)
后台 Base Path:/diseaseTreatments/onlineConsult/ai;移动端:/app/consult/ai;鉴权与若依一致。
通用前置(无特殊说明)
diseaseTreatment:aiOnlineConsult:list|query|send|add|remove(不要求绑定 biz_medical_resource)。biz_consult_session / biz_consult_message / biz_consult_user 已执行 DDL(见 sql/biz_consult_user.sql);宜预置:| 样本 | 说明 | 要点 |
|---|---|---|
| AS0 | VA 提问,consult_type=2 |
3 个月内;vet_visible=1;session_title 有值;含提问+AI 消息 |
| AS1 | VA 另一条 AI 会话 | 用于列表排序/筛选 |
| AS2 | VA 超窗 AI 会话 | last_message_time 早于 3 个月;默认列表不出现 |
| ASX | VB 的 AI 会话 | VA/OA 不可见/不可操作 |
| ASH | VA 已 hide | vet_visible=0 |
| AV0 | VA 的接诊会话 type=1 |
AI 列表不可见(隔离) |
| AS-EMPTY | VA 新建未提问 | session_title=新会话;last_message_time=create_time |
界面(UI):Playwright + Chromium(channel: 'chrome');菜单「牧业疫病诊疗服务 → AI 诊断(兽医、机构)」;路由 diseaseTreatment/onlineConsult/ai/index。
| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| ZCZX-AIZD-UT-001 | 规则常量 | AI 问诊类型 | 单元测试 | JUnit5 | §2.6、技术方案 §2.1 | 无 | 校验 CONSULT_TYPE_AI=2、SENDER_ROLE_AI=3 |
与方案一致 |
| ZCZX-AIZD-UT-005 | 参数校验 | 搜索关键字为空 | 单元测试 | JUnit5 | §5.4#3、§4.4 | 无 | searchMode=true 且 contentKeyword 空 |
失败;「请输入筛选条件」 |
| ZCZX-AIZD-UT-006 | 参数校验 | 发送校验复用 | 单元测试 | JUnit5 | §6.3 | 无 | 空文本/空媒体/非法后缀 | 同在线接诊校验文案 |
| ZCZX-AIZD-UT-007 | 会话创建 | receiver 全 NULL | 单元测试 | JUnit5+Mockito | §3.1 | 无 | 审阅 insertAiSession 入参 |
consult_type=2;receiver_* 均为 NULL |
| ZCZX-AIZD-UT-008 | 会话创建 | 新会话时间 | 单元测试 | JUnit5+Mockito | §3.5#1、AI-09 | 创建空会话 | createSession |
session_title=新会话;last_message_time 非空 |
| ZCZX-AIZD-UT-009 | Service | 默认列表 scope | 单元测试 | JUnit5+Mockito | §6.1 | 有 AS0、AS2、ASH、ASX | VA selectAiSessionList |
仅 AS0、AS1;consult_type=2;asker_user_id=VA |
| ZCZX-AIZD-UT-010 | Service | 搜索超窗 | 单元测试 | JUnit5+Mockito | §5.3#1、AI-03 | 有 AS2 | list(true, keyword命中) |
含 AS2 |
| ZCZX-AIZD-UT-011 | Service | 未搜索仍 3 个月 | 单元测试 | JUnit5+Mockito | §5.3#2 | 有 AS2 | 填 keyword 但 searchMode=false |
不含 AS2 |
| ZCZX-AIZD-UT-012 | Service | 首问更新标题 | 单元测试 | JUnit5+Mockito | §5.3#8 | AS-EMPTY | 首条文本提问成功 | session_title 更新为摘要≤50 字 |
| ZCZX-AIZD-UT-013 | Service | 提问+AI 回复 | 单元测试 | JUnit5+Mockito | §5、§4.3 | Mock Gateway 返回文本 | sendMessage |
提问 role=1;AI role=3;摘要更新;推送 2 次 |
| ZCZX-AIZD-UT-014 | Gateway | 视频固定文案 | 单元测试 | JUnit5 | §3.5#3、AI-07 | 无 | reply(msgType=3) |
返回「已收到视频,请补充文字描述症状。」 |
| ZCZX-AIZD-UT-015 | Gateway | 语音固定文案 | 单元测试 | JUnit5 | §3.5#3 | 无 | reply(msgType=4) |
返回「已收到语音,请补充文字描述。」 |
| ZCZX-AIZD-UT-016 | Gateway | 图片失败软回复 | 单元测试 | JUnit5+Mockito | §3.5#4、AI-11 | Mock 识图失败 | sendMessage 图片 |
仍插入 AI 消息;内容为图片识别暂不可用… |
| ZCZX-AIZD-UT-017 | Gateway | 单轮上下文 | 单元测试 | JUnit5+Mockito | §3.5#6 | 会话有多条历史 | 第二次 sendMessage |
Gateway 入参仅当前提问,不含历史 |
| ZCZX-AIZD-UT-018 | Service | 处理中拒发 | 单元测试 | JUnit5+Mockito | §3.5#7、AI-10 | 第一次未释放锁 | 连续两次 sendMessage |
第二次失败;「AI 正在回复中,请稍候」 |
| ZCZX-AIZD-UT-019 | Service | 越权会话 | 单元测试 | JUnit5+Mockito | §3.6 | VA 访问 ASX | messages/send |
「无权查看该会话」 |
| ZCZX-AIZD-UT-020 | Service | hide 后会话 | 单元测试 | JUnit5+Mockito | §4.1.1、AI-04 | ASH | messages/send |
「会话不存在或已删除」 |
| ZCZX-AIZD-UT-021 | Service | 快捷模板 | 单元测试 | JUnit5 | §6 M1、AI-08 | 无 | resolvePromptTemplate(2) |
返回疾病诊疗预填模板非空 |
| ZCZX-AIZD-UT-022 | Mapper | AI 列表 SQL | 单元测试 | JUnit5 | §3.3 | 审阅 XML | selectAiSessionList |
consult_type=2;asker_user_id;vet_visible=1;COALESCE 时间窗 |
| ZCZX-AIZD-UT-023 | 隔离 | 不进接诊列表 | 单元测试 | JUnit5+Mockito | AI-05 | 有 AV0 | 兽医接诊 list |
无 AS0 |
| ZCZX-AIZD-UT-024 | 隔离 | 接诊不进 AI 列表 | 单元测试 | JUnit5+Mockito | AI-05 | 有 AV0 | VA ai list |
无 AV0 |
| ZCZX-AIZD-UT-025 | 约束 | 不校验预约 | 单元测试 | JUnit5+Mockito | §3.4 | 无预约单 | create+send |
成功;不查 biz_service_appointment |
| ZCZX-AIZD-UT-026 | 诊断用户 | 新建会话插入 | 单元测试 | JUnit5+Mockito | §3.0 | biz_consult_user 无 VA |
createAiSession |
INSERT 一行;user_id=VA;first_use_time、last_use_time 非空且相等 |
| ZCZX-AIZD-UT-027 | 诊断用户 | 已存在不重复插 | 单元测试 | JUnit5+Mockito | §3.0 | VA 已在用户表 | createAiSession |
不调用 insertBizConsultUser |
| ZCZX-AIZD-UT-028 | 诊断用户 | 发消息更新末次 | 单元测试 | JUnit5+Mockito | §3.0 | 有 AS0 | sendAiMessage |
updateLastUseTime(VA, last_message_time) 至少 1 次 |
| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| ZCZX-AIZD-API-001 | 列表 | 默认分页 | 接口测试 | Postman | §6.1、AI-03 | VA;AS0、AS1 | GET /session/list |
code=200;仅 3 个月内;含 sessionTitle |
| ZCZX-AIZD-API-002 | 列表 | 超窗默认不出现 | 接口测试 | Postman | AI-03 | 有 AS2 | searchMode=false |
无 AS2 |
| ZCZX-AIZD-API-003 | 列表 | 搜索超窗 | 接口测试 | Postman | §5.3#2 | 有 AS2 | searchMode=true&contentKeyword=命中 |
含 AS2 |
| ZCZX-AIZD-API-004 | 列表 | 重置 | 接口测试 | Postman | §6.1 | 曾搜出 AS2 | searchMode=false 清空条件 |
无 AS2 |
| ZCZX-AIZD-API-005 | 列表 | 仅填关键字未搜索 | 接口测试 | Postman | §5.3#2 | 有 AS2 | 传 keyword 无 searchMode=true |
仍无 AS2 |
| ZCZX-AIZD-API-006 | 列表 | 搜索关键字空 | 接口测试 | Postman | §4.4 | 已登录 | searchMode=true 无 keyword |
「请输入筛选条件」 |
| ZCZX-AIZD-API-007 | 列表 | 含 disclaimer | 接口测试 | Postman | §3.5#8 | VA 已登录 | GET /session/list |
响应含 disclaimer 非空 |
| ZCZX-AIZD-API-008 | 列表 | 机构账号 | 接口测试 | Postman | §3.5、AI-06 | OA 已登录有权限 | GET /session/list |
code=200 |
| ZCZX-AIZD-API-009 | 列表 | 无医疗资源绑定 | 接口测试 | Postman | §5.4#7 | NB 有 AI 权限、未绑定资源 | GET /session/list |
code=200;按 NB 本人会话返回(可为空) |
| ZCZX-AIZD-API-010 | 列表 | 越权隔离 | 接口测试 | Postman | AI-05 | 有 ASX | VA 列表 | 无 ASX |
| ZCZX-AIZD-API-011 | 列表 | 已 hide | 接口测试 | Postman | AI-04 | ASH | VA 列表 | 无 ASH |
| ZCZX-AIZD-API-012 | 新建 | 空会话 | 接口测试 | Postman | §4.2、AI-01、AI-09 | VA | POST /session |
返回 sessionId、disclaimer;再 list 含「新会话」 |
| ZCZX-AIZD-API-013 | 消息 | 历史升序 | 接口测试 | Postman | §6.2 | AS0 | GET /session/{id}/messages |
≤50 条;senderRole 1/3;升序 |
| ZCZX-AIZD-API-014 | 消息 | 越权 | 接口测试 | Postman | §3.6 | ASX | VA GET messages |
无权 |
| ZCZX-AIZD-API-015 | 消息 | hide 后 | 接口测试 | Postman | AI-04 | ASH | GET messages |
会话不存在或已删除 |
| ZCZX-AIZD-API-016 | 提问 | 文本+AI 回复 | 接口测试 | Postman | §4.4、AI-02 | AS0 或新建 | POST .../message msgType=1 |
data 含 userMessage、aiMessage;aiMessage.senderRole=3 |
| ZCZX-AIZD-API-017 | 提问 | 首问更新标题 | 接口测试 | Postman | §5.3#8 | AS-EMPTY | 发首条文本 | list 中标题非「新会话」 |
| ZCZX-AIZD-API-018 | 提问 | 图片 | 接口测试 | Postman | §5.4#8 | 先 upload | msgType=2+url |
成功;有 AI 回复 |
| ZCZX-AIZD-API-019 | 提问 | 视频固定回复 | 接口测试 | Postman | AI-07、§3.5#3 | AS0 | msgType=3+mp4 url |
AI content 含「已收到视频」 |
| ZCZX-AIZD-API-020 | 提问 | 语音固定回复 | 接口测试 | Postman | AI-07 | AS0 | msgType=4+mp3 url |
AI content 含「已收到语音」 |
| ZCZX-AIZD-API-021 | 提问 | 文本为空 | 接口测试 | Postman | §6.3 | AS0 | content="" |
「请输入消息内容」 |
| ZCZX-AIZD-API-022 | 提问 | 处理中拒发 | 接口测试 | Postman | AI-10、§4.4 | 首条未返回前 | 连续两次 POST message |
第二次「AI 正在回复中,请稍候」 |
| ZCZX-AIZD-API-023 | 提问 | Gateway 硬失败 | 接口测试 | Postman | §5 步骤13 | Mock/断网 AI | POST message |
无 AI 消息入库;「AI 回复失败/超时」 |
| ZCZX-AIZD-API-024 | 鉴权 | 未登录 | 接口测试 | curl | 安全 | 无 Token | GET /session/list |
401 |
| ZCZX-AIZD-API-025 | 权限 | 无 add | 接口测试 | Postman | §7 | 无 add 权限 | POST /session |
无权限 |
| ZCZX-AIZD-API-026 | 权限 | 无 send | 接口测试 | Postman | §7 | 仅 list/query | POST .../message |
无权限 |
| ZCZX-AIZD-API-027 | 隔离 | 接诊列表无 AI | 接口测试 | Postman | AI-05 | 有 AS0、AV0 | VA 调 .../vet/session/list |
无 AS0 |
| ZCZX-AIZD-API-028 | 移动端 | 新建+模板 | 接口测试 | Postman | M1、AI-08 | U1 | POST /app/.../session Body category=2 |
sessionId、promptTemplate 含疾病诊疗 |
| ZCZX-AIZD-API-029 | 移动端 | 牧民提问 | 接口测试 | Postman | M4 | U1 会话 | POST /app/.../message |
成功;sender_role=1+AI |
| ZCZX-AIZD-API-030 | 移动端 | 隐藏会话 | 接口测试 | Postman | M5、AI-04 | U1 会话 | POST /app/consult/ai/session/{id}/hide |
vet_visible=0;管理端列表不可见 |
| ZCZX-AIZD-API-031 | 移动端 | 隐藏越权 | 接口测试 | Postman | §4.1.1 | U1 会话 | U2 hide |
失败 |
| ZCZX-AIZD-API-032 | 移动端 | 列表搜索 | 接口测试 | Postman | §3.5#5 | U1 有超窗会话 | GET /app/.../list?searchMode=true |
可命中超窗 |
| ZCZX-AIZD-API-033 | 新建 | 不要求医疗资源 | 接口测试 | Postman | §5.4#7 | NB 或 U1 无绑定 | POST /session 或 /app/.../session |
成功(不校验 biz_medical_resource) |
| ZCZX-AIZD-API-034 | 端到端 | 后台主流程 | 接口测试 | Postman | §7.1 | VA | POST session→message→list |
新会话、问答、摘要更新 |
| ZCZX-AIZD-API-035 | 端到端 | 搜索重置 | 接口测试 | Postman | AI-03 | 有 AS2 | list→search→reset | 与 API-002~004 一致 |
| ZCZX-AIZD-API-036 | 近实时 | AI 推送 | 接口测试 | Postman+WS | §5.1、AI-02 | 订阅 /topic/consult/ai/{VA} |
POST message |
AI 消息 ≤1s 收到 NEW_MESSAGE |
| ZCZX-AIZD-API-037 | 响应 | 失败文案 | 接口测试 | Postman | §9 | 已登录 | 触发越权、空搜索、处理中 | msg 与 §4.4 一致 |
| ZCZX-AIZD-API-038 | 管理端 | 隐藏会话 | 接口测试 | Postman | §4.5、AI-04 | VA;AS0 | POST /diseaseTreatment/onlineConsult/ai/session/{id}/hide |
code=200;列表无该会话 |
| ZCZX-AIZD-API-039 | 管理端 | 隐藏越权 | 接口测试 | Postman | §4.1.1 | ASX 属 VB | VA POST .../hide |
「会话不存在或已删除」 |
| ZCZX-AIZD-API-040 | 权限 | 无 remove | 接口测试 | Postman | §4.5 | 仅 list/query/add | POST .../hide |
无权限 |
| ZCZX-AIZD-API-041 | 落库 | realSessionId | 接口测试 | Postman | §4.3、§5 | VA;AS0 | POST .../message Body 含 aiReplyContent + realSessionId |
code=200;data.realSessionId 与库 real_session_id 一致 |
| ZCZX-AIZD-API-042 | 落库 | aiCategory | 接口测试 | Postman | §3.2、§4.3 | VA;AS0 | POST .../message Body aiCategory=2 + aiReplyContent |
userMessage.aiCategory=2;aiMessage.aiCategory 为空 |
| ZCZX-AIZD-API-043 | 校验 | aiCategory 无效 | 接口测试 | Postman | §4.4 | VA;AS0 | aiCategory=99(纯数字超范围) |
失败;「AI提问分类无效」 |
| ZCZX-AIZD-API-044 | 诊断用户 | 新建写入用户表 | 接口测试 | Postman/SQL | §3.0 | VA;biz_consult_user 无 VA |
POST /session 后查库 |
新增 1 行;first_use_time、last_use_time≈会话 create_time |
| ZCZX-AIZD-API-045 | 诊断用户 | 提问更新末次 | 接口测试 | Postman/SQL | §3.0 | VA;AS0;记下提问前 last_use_time |
POST .../message 成功后查库 |
biz_consult_user.last_use_time 与 biz_consult_session.last_message_time 一致(或晚于提问前) |
测试工具:Playwright + Chromium(channel: 'chrome' 使用本机 Google Chrome)。
| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| ZCZX-AIZD-UI-001 | 布局 | 左右分栏 | UI 测试 | Playwright+Chrome | §6、原型 | VA 登录 | 进入「AI 诊断(兽医、机构)」 | 左「历史会话」;右「AI 助手」 |
| ZCZX-AIZD-UI-002 | 列表 | 列表字段 | UI 测试 | Playwright+Chrome | §6.1 | 有 AS0 | 查看左侧项 | 问答标题、摘要、M月D日 |
| ZCZX-AIZD-UI-003 | 列表 | 默认 3 个月 | UI 测试 | Playwright+Chrome | AI-03 | AS0、AS2 | 进入不搜索 | 见 AS0;不见 AS2 |
| ZCZX-AIZD-UI-004 | 列表 | 搜索超窗 | UI 测试 | Playwright+Chrome | AI-03 | 有 AS2 | 填会话内容→搜索 | 出现 AS2 |
| ZCZX-AIZD-UI-005 | 列表 | 重置 | UI 测试 | Playwright+Chrome | §6.1 | 已搜出 AS2 | 点重置 | 条件清空;AS2 消失 |
| ZCZX-AIZD-UI-006 | 列表 | 未点搜索 | UI 测试 | Playwright+Chrome | §5.3#2 | 有 AS2 | 仅输入关键字不点搜索 | 仍无 AS2 |
| ZCZX-AIZD-UI-007 | 列表 | 搜索无结果 | UI 测试 | Playwright+Chrome | §9 | 已登录 | 搜索不存在内容 | 「未找到匹配的 AI 诊断会话」或空态 |
| ZCZX-AIZD-UI-008 | 新建 | 新增会话 | UI 测试 | Playwright+Chrome | §6.1、AI-01 | VA 登录 | 点新增会话 | 右侧空态/引导;左侧出现「新会话」 |
| ZCZX-AIZD-UI-009 | 新建 | 免责声明 | UI 测试 | Playwright+Chrome | §5.4#6、§3.5#8 | 首次进入或新建后 | 观察页面 | 展示免责声明文案 |
| ZCZX-AIZD-UI-010 | 聊天 | 未选会话 | UI 测试 | Playwright+Chrome | §6.2 | 有列表 | 不点左侧 | 「请选择历史会话或新增会话」 |
| ZCZX-AIZD-UI-011 | 聊天 | 加载历史 | UI 测试 | Playwright+Chrome | §6.2 | 有 AS0 | 点击 AS0 | 标题「AI 助手」;左提问右 AI 气泡 |
| ZCZX-AIZD-UI-012 | 提问 | 文本与等待态 | UI 测试 | Playwright+Chrome | §4.3、§6.3 | 选中会话 | 输入问题→发送 | 提问立即出现;「AI 正在思考…」;随后 AI 回复 |
| ZCZX-AIZD-UI-013 | 提问 | 文本为空 | UI 测试 | Playwright+Chrome | §6.3 | 选中会话 | 空内容发送 | 「请输入消息内容」 |
| ZCZX-AIZD-UI-014 | 提问 | 图片上传 | UI 测试 | Playwright+Chrome | §6.3 | 选中会话 | 选 jpg 上传发送 | 图片气泡;AI 有回复或引导文案 |
| ZCZX-AIZD-UI-015 | 提问 | 视频/语音文件 | UI 测试 | Playwright+Chrome | §4.2 | 选中会话 | 发 mp4/mp3 | AI 回复为补文字引导(§3.5#3) |
| ZCZX-AIZD-UI-016 | 提问 | 处理中拒发 | UI 测试 | Playwright+Chrome | AI-10 | 已点发送 | AI 未返回前再次点发送 | 「AI 正在回复中,请稍候」 |
| ZCZX-AIZD-UI-017 | 本期范围 | 不改前端 | UI 测试 | Playwright+Chrome | §4.1.1 | 已登录 | 扫描页面 | 无隐藏按钮;接口 API-038 可 Postman 验证 |
| ZCZX-AIZD-UI-018 | 本期范围 | 无接诊混用 | UI 测试 | Playwright+Chrome | §6.4、AI-05 | 有接诊数据 | 本页列表 | 无问诊人姓名式接诊项 |
| ZCZX-AIZD-UI-019 | 权限 | 机构账号 | UI 测试 | Playwright+Chrome | §3.5 | OA 登录 | 进入同菜单 | 可新建、提问 |
| ZCZX-AIZD-UI-020 | 权限 | 无资源绑定可用 | UI 测试 | Playwright+Chrome | §5.4#7 | NB 有菜单与 AI 权限 | 进入 AI 诊断→新增会话 | 可正常使用;无「未绑定医疗资源」阻断 |
| ZCZX-AIZD-UI-021 | 权限 | 无 send | UI 测试 | Playwright+Chrome | §7 | 仅 list/query | 选中会话 | 无发送区或发送禁用 |
| ZCZX-AIZD-UI-022 | 端到端 | 新建问答闭环 | UI 集成 | Playwright+Chrome | §7.1 | VA 权限齐 | 新增会话→提问→看 AI 回复→列表摘要更新 | 全流程成功 |
| ZCZX-AIZD-UI-023 | 端到端 | hide 同步 | UI 集成 | Playwright+Chrome | AI-04 | U1 移动端 hide | VA 刷新列表 | 该会话消失 |
| 类别 | 单元 UT | 接口 API | 界面 UI |
|---|---|---|---|
| 正常主流程 | UT-008~013、021 | API-012~018、034 | UI-008、011~012、022 |
| 列表/搜索/重置 | UT-009~011 | API-001~006、035 | UI-003~006 |
| 新建会话/空会话 | UT-008、012 | API-012、017 | UI-008、009 |
| AI 回复/网关 | UT-013~017 | API-016~020、023、036 | UI-012、014~015 |
| 处理中/超时 | UT-018 | API-022、023 | UI-016 |
| 隐藏 hide | UT-020 | API-030~031、038~040 | UI-017、023 |
| 越权/隔离 | UT-019、023~024 | API-010、014、027 | UI-018 |
| 机构/兽医/无绑定 | — | API-008~009 | UI-019~020 |
| 移动端/牧民 | UT-021 | API-028~033 | — |
| 快捷入口 | UT-021 | API-028 | (移动端 UI 可另补) |
| 免责声明 | — | API-007 | UI-009 |
| 预约解耦 | UT-025 | — | — |
| 需求章节 | 要点 | 主要用例 |
|---|---|---|
| §5.3 产品确认 | 八项已确认 | API-001~012;UI-003~009 |
| §5.4 补充约定 | 十二条 | UT-014~018;API-019~022;§3.5 |
| §6.1 列表 | 搜索、新增、3 个月 | API-001~012;UI-001~008 |
| §6.2 对话 | 全历史、AI 助手标题 | API-013;UI-010~011 |
| §6.3 发送 | 多媒体、等待、失败 | API-016~023;UI-012~016 |
| §6.4 与接诊互斥 | 隔离 | UT-023~024;API-027;UI-018 |
| §7 流程 | 后台/移动/时序 | API-034~036;UI-022 |
| 技术方案 AI-01~11 | 验收 | API/UI 对应编号 |
npm i -D @playwright/test;npx playwright install chrome。use: { channel: 'chrome', locale: 'zh-CN', baseURL: 'http://localhost:80' };storageState 复用兽医 VA、机构 OA。page.goto('/diseaseTreatment/onlineConsult/ai')。page.getByPlaceholder('请输入会话内容');page.getByRole('button', { name: '搜索' });page.getByRole('button', { name: '重置' });page.getByRole('button', { name: '新增会话' });page.getByRole('button', { name: '发送' });右侧标题 page.getByText('AI 助手')。text=AI 正在思考 断言可见,再 expect(aiBubble).toBeVisible({ timeout: 65000 })(覆盖 60s AI 超时)。POST /diseaseTreatment/onlineConsult/ai/session;POST .../message;隐藏:POST .../session/{id}/hide(管理端或移动端)。| 版本 | 说明 |
|---|---|
| 1.0 | 初版:单元 25、接口 37、UI 23;覆盖列表/新建/提问/AI 回复/搜索/hide/隔离/机构/移动/网关/免责声明;Playwright+Chrome |
| 1.1 | 补充 biz_consult_user:UT-026~028、API-044~045;前置 DDL 含 sql/biz_consult_user.sql |