依据:
ruoyi-ui-app/pages.json、ruoyi-ui-app/doc/*.md、doc/uni-app标准.md及各业务页面实现。
应用形态:uni-app(Vue3 + uView Plus),主包 4 Tab + 分包package-a共 20 个子页。
接口鉴权:HeaderAuthorization: Bearer {token}(本地键Admin-Token);401 时 Toast「登录过期,即将登录」并跳转登录页。
| 项 | 说明 |
|---|---|
| 测试账号 | 用户名 ry,密码 123456 |
| 后端 | 与 ruoyi-ui-app/config/index.js 中 DEV_API_HOST 一致(默认 http://192.168.1.25:8010);后端已启动且 CORS 已开 |
| 运行方式 | H5:npm run dev:h5(端口以控制台为准,常见 5173);微信/APP 按 manifest 另行配置 |
| 数据 | 业务库宜有:资讯分类(moduleId=01)、畜牧资源、农技课程/实战培训、预约资源(兽医 004001 / 专家 004005 / 机构 004003)、在线接诊兽医、牦牛行情样本 |
| 登录态 | 需登录场景:先完成登录;Token 过期场景可 Mock code=401 或等待过期 |
App 路由索引(H5 hash 示例):
| 模块 | 路径 |
|---|---|
| 登录 | #/pages/login/index |
| 首页 Tab | #/pages/home/index |
| AI Tab | #/pages/ai/index |
| 消息 Tab | #/pages/message/index |
| 我的 Tab | #/pages/mine/index |
| 养殖资讯 | #/package-a/breeding-news/index |
| 畜牧资源 | #/package-a/livestock-resources/index |
| 农技课堂 | #/package-a/agri-classroom/index |
| 用药工具 | #/package-a/medicine-tools/index |
| 牦牛行情 | #/package-a/yak-market/index |
| 预约服务 | #/package-a/booking-service/index |
| 我的预约 | #/package-a/my-booking/index |
| 在线问诊 | #/package-a/online-clinic/index |
| AI 助手 | #/package-a/ai-assistant/index |
| 类别 | 覆盖要点 |
|---|---|
| 登录鉴权 | 登录/退出、验证码、记住账号、Token 401、ensureApiToken 跳转 |
| Tab 与 i18n | 四 Tab 切换、汉藏双语、Tab 文案同步、藏文布局 |
| 可匿名浏览 | 首页宫格、资讯/资源/课堂/用药/行情、课程详情(query 传参) |
| 需登录操作 | 预约提交、我的报名、在线问诊、消息、AI 会话、评价提交 |
| 预约全链路 | 兽医/专家/机构三类型、表单校验、状态筛选、取消、专家评价 |
| 问诊与 AI | 兽医列表→会话→消息;AI 列表→助手聊天→多媒体 |
| 异常 | 空列表、网络失败、重复预约、非法表单、未登录拦截 |
| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| YDD-LOGIN-API-001 | 登录 | 正常登录 | 接口测试 | Postman/curl | 获取 Token | 验证码关闭或已知 code | POST /login Body: username=ry&password=123456 |
code=200;返回 token |
| YDD-LOGIN-API-002 | 登录 | 错误密码 | 接口测试 | Postman | 鉴权失败 | 无 | 错误 password | code≠200;msg 提示账号或密码错误 |
| YDD-LOGIN-API-003 | 登录 | 获取用户信息 | 接口测试 | Postman | 会话有效 | 已登录 Token | GET /getInfo |
code=200;含 user、roles |
| YDD-LOGIN-API-004 | 登录 | 未登录访问 | 接口测试 | curl | 401 | 无 Token | GET /getInfo |
401 或未登录 |
| YDD-LOGIN-API-005 | 登录 | 退出 | 接口测试 | Postman | 清会话 | 已登录 | POST /logout |
code=200 |
| YDD-NEWS-API-001 | 养殖资讯 | 分类树 | 接口测试 | Postman | 分类加载 | 无 | GET /category/informationCategory/tree?moduleId=01 |
code=200;可见分类 |
| YDD-NEWS-API-002 | 养殖资讯 | 列表分页 | 接口测试 | Postman | 列表 | 有资讯数据 | GET /app/farmingNews/list?type={code}&pageNum=1&pageSize=10 |
code=200;rows 非 null |
| YDD-NEWS-API-003 | 养殖资讯 | 标题模糊 | 接口测试 | Postman | 搜索 | 有样本 | title=关键字 |
仅匹配标题 |
| YDD-RES-API-001 | 畜牧资源 | 四类列表 | 接口测试 | Postman | Tab 数据 | 有资源 | GET /app/livestockResource/list?type=004002(及 006/007/008) |
各 type 可返回;rows 含 id、sourceType |
| YDD-RES-API-002 | 畜牧资源 | 详情-科技 | 接口测试 | Postman | 源表全字段 | 有已发布技术成果 | GET /app/livestockResource/{id}?type=2 |
code=200;data.resourceType 为 004006/007/008 |
| YDD-RES-API-003 | 畜牧资源 | 详情-医疗 | 接口测试 | Postman | 源表全字段 | 有已发布专家团队 | GET /app/livestockResource/{id}?type=1 |
code=200;data.resourceType=004002 |
| YDD-RES-API-004 | 畜牧资源 | 详情-不存在 | 接口测试 | Postman | 异常 | 已登录 | GET /app/livestockResource/999999?type=2 |
失败;msg 含「下线或不存在」 |
| YDD-CLASS-API-001 | 农技课堂 | 视频课程 | 接口测试 | Postman | 课程列表 | 有课程 | GET /app/agriculturalCourse/list?courseTopic=005001&pageNum=1 |
code=200 |
| YDD-CLASS-API-002 | 农技课堂 | 实战培训 | 接口测试 | Postman | 培训列表 | 有培训 | GET /app/agriculturalCourse/list?trainingStatus=006002 |
code=200 |
| YDD-CLASS-API-003 | 培训报名 | 报名 | 接口测试 | Postman | 需登录 | ry 登录;培训 006002 | POST /app/practicalTraining/{id}/enroll |
code=200 |
| YDD-CLASS-API-004 | 培训报名 | 取消报名 | 接口测试 | Postman | 需登录 | 已报名记录 | POST /app/practicalTraining/{id}/cancelEnroll |
code=200 |
| YDD-CLASS-API-005 | 我的报名 | 列表 | 接口测试 | Postman | 需登录 | ry 登录 | GET /app/practicalTraining/myEnroll/list?pageNum=1 |
code=200 |
| YDD-MED-API-001 | 用药工具 | 药物查询 | 接口测试 | Postman | 药名必填 | 库有药物 | GET /app/medication/drug/query?drugName=青霉素 |
返回 drugTypeName 等 |
| YDD-MED-API-002 | 用药工具 | 休药期计算 | 接口测试 | Postman | 日期+药名 | 库有药物 | GET /app/medication/withdrawal/calculate?drugName=xx&stopDate=2026-05-20 |
返回 endDate、withdrawalDays |
| YDD-MED-API-003 | 用药工具 | 配伍检查 | 接口测试 | Postman | ≥2 药名 | 无 | GET /app/medication/compatibility/check?drugName1=a&drugName2=b |
返回 compatResult |
| YDD-MKT-API-001 | 牦牛行情 | 昨日行情 | 接口测试 | Postman | 主卡片 | 有行情 | GET /app/yakMarket/yesterday |
code=200 |
| YDD-MKT-API-002 | 牦牛行情 | 7 日统计 | 接口测试 | Postman | 统计 | 有数据 | GET /app/yakMarket/stats7 |
code=200 |
| YDD-MKT-API-003 | 牦牛行情 | 走势 | 接口测试 | Postman | 图表 | 有数据 | GET /app/yakMarket/trend?days=7 |
code=200 |
| YDD-MKT-API-004 | 牦牛行情 | 每日列表 | 接口测试 | Postman | 分页 | 有数据 | GET /app/yakMarket/daily/list?pageNum=1 |
code=200 |
| YDD-BOOK-API-001 | 预约服务 | 可约日期 | 接口测试 | Postman | 日期 Chip | 无 | GET /app/bookingService/dates |
近 7 日 |
| YDD-BOOK-API-002 | 预约服务 | 资源列表 | 接口测试 | Postman | 三类型 | 有资源 | GET /app/bookingService/resource/list?resourceType=004001 |
兽医列表 |
| YDD-BOOK-API-003 | 预约 | 已约时段 | 接口测试 | Postman | 防重复 | ry 登录 | GET /app/bookingService/appointment/booked?providerType=1&providerId={id}&appointDate=2026-05-25 |
返回已占时段 |
| YDD-BOOK-API-004 | 预约 | 提交兽医预约 | 接口测试 | Postman | 主流程 | ry 登录;有效资源 | POST /app/bookingService/appointment Body 含 appointeeName、contactPhone、timeSlot、serviceAddress、serviceRequirement |
code=200;status=0 待确认 |
| YDD-BOOK-API-005 | 预约 | 提交机构预约 | 接口测试 | Postman | 机构规则 | ry 登录 | providerType=机构;Body 仅姓名电话 | code=200;status=5 已预约 |
| YDD-MYBOOK-API-001 | 我的预约 | 列表-兽医 | 接口测试 | Postman | 分页 | ry 登录;有预约 | GET /app/myAppointment/list?providerType=1&statusTab=all |
code=200 |
| YDD-MYBOOK-API-002 | 我的预约 | 状态筛选 | 接口测试 | Postman | statusTab | 有多状态样本 | statusTab=notStarted / completed / cancelled |
结果符合映射 |
| YDD-MYBOOK-API-003 | 我的预约 | 取消预约 | 接口测试 | Postman | 取消 | 可取消记录 | POST /app/myAppointment/cancel/{id} |
code=200;status=3 |
| YDD-MYBOOK-API-004 | 我的预约 | 未登录 | 接口测试 | curl | 401 | 无 Token | GET /app/myAppointment/list |
401 |
| YDD-REVIEW-API-001 | 评价 | 专家历史评价 | 接口测试 | Postman | 列表 | 有评价 | GET /app/bookingService/expert/{id}/reviews |
code=200 |
| YDD-REVIEW-API-002 | 评价 | 提交评价 | 接口测试 | Postman | 三维评分 | ry 登录;专家已完成未评 | POST /app/myAppointment/{id}/review Body: punctualityScore、attitudeScore、guidanceScore、summary |
code=200 |
| YDD-REVIEW-API-003 | 评价 | 查看评价 | 接口测试 | Postman | 只读 | 已评价 | GET /app/myAppointment/{id}/review |
含三维分与 summary |
| YDD-CLINIC-API-001 | 在线问诊 | 兽医列表 | 接口测试 | Postman | 列表 | 有在线接诊兽医 | GET /app/onlineConsult/vet/list?pageNum=1 |
code=200 |
| YDD-CLINIC-API-002 | 在线问诊 | 开启会话 | 接口测试 | Postman | 开 session | ry 登录 | POST /app/onlineConsult/session/open Body: vetResourceId |
code=200;sessionId |
| YDD-CONSULT-API-001 | 问诊详情 | 消息列表 | 接口测试 | Postman | 历史消息 | 有 session | GET /app/onlineConsult/session/{id}/messages |
code=200 |
| YDD-CONSULT-API-002 | 问诊详情 | 发送文本 | 接口测试 | Postman | 发消息 | ry 登录 | POST /app/onlineConsult/session/{id}/message msgType=1 |
code=200 |
| YDD-MSG-API-001 | 消息 | 会话列表 | 接口测试 | Postman | Tab 消息 | ry 登录 | GET /app/onlineConsult/session/list?pageNum=1&pageSize=24 |
code=200 |
| YDD-MSG-API-002 | 消息 | 隐藏会话 | 接口测试 | Postman | 删除 | 有 session | POST /app/consult/vet/session/{sessionId}/hide |
code=200 |
| YDD-AI-API-001 | AI | 会话列表 | 接口测试 | Postman | AI Tab | ry 登录 | GET /app/consult/ai/session/list?pageNum=1&pageSize=100 |
code=200 |
| YDD-AI-API-002 | AI | 新建会话 | 接口测试 | Postman | 新建 | ry 登录 | POST /app/consult/ai/session |
返回 sessionId |
| YDD-AI-API-003 | AI | 隐藏会话 | 接口测试 | Postman | 删除 | 有 session | POST /app/consult/ai/session/{id}/hide |
code=200 |
| YDD-AI-API-004 | AI | 发送消息 | 接口测试 | Postman | LLM | ry 登录;有 session | POST /app/consult/ai/session/{id}/message |
code=200(超时≤65s) |
测试工具:
channel: 'chrome')或手工;baseURL 为 H5 开发地址(如 http://localhost:5173)通用登录步骤(前置):打开 #/pages/login/index → 输入 ry / 123456 →(若显示验证码则填写)→ 登录 → 进入首页 Tab。
| 用例编号 | 测试模块 | 测试项 | 测试类型 | 测试工具 | 测试目的 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| YDD-LOGIN-UI-001 | 登录 | 空用户名 | UI 测试 | Playwright/手工 | 前端校验 | 未登录 | 密码填 123456,用户名为空→登录 | Toast 提示用户名不能为空 |
| YDD-LOGIN-UI-002 | 登录 | 空密码 | UI 测试 | Playwright/手工 | 前端校验 | 未登录 | 用户名 ry,密码空→登录 | Toast 提示密码不能为空 |
| YDD-LOGIN-UI-003 | 登录 | 验证码必填 | UI 测试 | Playwright/手工 | captchaEnabled | 后端开启验证码 | 不填验证码→登录 | Toast 提示验证码不能为空 |
| YDD-LOGIN-UI-004 | 登录 | 成功登录 | UI 测试 | Playwright/手工 | 主流程 | 验证码关或正确 | ry / 123456→登录 | 跳转首页 Tab;本地有 Token |
| YDD-LOGIN-UI-005 | 登录 | 记住账号 | UI 测试 | Playwright/手工 | 持久化 | 勾选记住 | 登录成功→退出→再进登录页 | 用户名自动回填 ry |
| YDD-LOGIN-UI-006 | 登录 | 已有 Token 跳过 | UI 测试 | Playwright/手工 | 免登 | 已登录 | 直接打开登录页 | 自动 switchTab 首页 |
| YDD-LOGIN-UI-007 | 登录 | 401 过期 | UI 测试 | Playwright/手工 | request.js | 已登录 | Mock 某接口 401 或等过期 | Toast「登录过期,即将登录」→ 登录页 |
| YDD-TAB-UI-001 | Tab | 四 Tab 切换 | UI 测试 | 手工 | 导航 | 已登录 | 依次点 首页/AI/消息/我的 | 各 Tab 高亮绿色;页面正确 |
| YDD-TAB-UI-002 | Tab | 默认首页 | UI 测试 | 手工 | 默认页 | 冷启动 | 打开 App | 默认展示首页 Tab |
| YDD-I18N-UI-001 | 多语言 | 切换藏文 | UI 测试 | 手工 | i18n | 我的页 | 语言版本→选 བོད་ཡིག | 文案变藏文;根节点 lang-bo |
| YDD-I18N-UI-002 | 多语言 | Tab 文案同步 | UI 测试 | 手工 | tabBar | 已切藏文 | 查看底部 Tab | Tab 文本为藏文 |
| YDD-I18N-UI-003 | 多语言 | 切回中文 | UI 测试 | 手工 | i18n | 当前藏文 | 语言版本→简体中文 | 文案恢复中文;布局正常 |
| YDD-HOME-UI-001 | 首页 | 九宫格展示 | UI 测试 | 手工 | 入口 | 首页 | 查看 3×3 宫格 | 9 项:资讯、资源、课堂、用药、行情、店铺、预约、问诊、AI助手 |
| YDD-HOME-UI-002 | 首页 | 跳转养殖资讯 | UI 测试 | 手工 | 导航 | 首页 | 点击「养殖资讯」 | 进入 breeding-news |
| YDD-HOME-UI-003 | 首页 | 跳转预约服务 | UI 测试 | 手工 | 导航 | 首页 | 点击「预约服务」 | 进入 booking-service |
| YDD-HOME-UI-004 | 首页 | 跳转在线问诊 | UI 测试 | 手工 | 导航 | 首页 | 点击「在线问诊」 | 进入 online-clinic |
| YDD-HOME-UI-005 | 首页 | 跳转 AI 助手 | UI 测试 | 手工 | 导航 | 首页 | 点击「AI助手」 | 进入 ai-assistant |
| YDD-NEWS-UI-001 | 养殖资讯 | 分类 Tab | UI 测试 | 手工 | 筛选 | 有分类数据 | 切换顶部分类 | 列表随 type 刷新 |
| YDD-NEWS-UI-002 | 养殖资讯 | 搜索 | UI 测试 | 手工 | 模糊 | 有资讯 | 输入标题关键字 | 列表过滤匹配项 |
| YDD-NEWS-UI-003 | 养殖资讯 | 全部分类弹窗 | UI 测试 | 手工 | 分类 | 首页进资讯 | 打开全部分类→选 Chip | 列表切换对应分类 |
| YDD-NEWS-UI-004 | 养殖资讯 | 进详情 | UI 测试 | 手工 | 详情 | 有列表 | 点击一条 | 进入 news-detail;标题/日期/简介展示 |
| YDD-NEWS-UI-005 | 养殖资讯 | 附件预览 | UI 测试 | 手工 | 附件 | 详情含 PDF/图片 | 点击附件 | 图片预览或跳转 file-preview |
| YDD-RES-UI-001 | 畜牧资源 | 四类 Tab | UI 测试 | 手工 | Tab | 有数据 | 切换 t1~t4 | 各 Tab 列表不同 |
| YDD-RES-UI-002 | 畜牧资源 | 搜索 | UI 测试 | 手工 | 模糊 | 有资源 | 输入标题搜索 | 列表过滤 |
| YDD-CLASS-UI-001 | 农技课堂 | 视频/培训 Tab | UI 测试 | 手工 | 主 Tab | 有数据 | 切换视频课程与实战培训 | 子 Chip 与列表联动 |
| YDD-CLASS-UI-002 | 农技课堂 | 进课程详情 | UI 测试 | 手工 | 视频 | 有视频课 | 点击课程卡片 | course-detail;可播放视频 |
| YDD-CLASS-UI-003 | 培训详情 | 未开始不可报 | UI 测试 | 手工 | 006001 | 培训 status=006001 | 打开培训详情 | 按钮灰色不可点 |
| YDD-CLASS-UI-004 | 培训详情 | 报名中可报 | UI 测试 | 手工 | 006002 | ry 登录;未满 | 打开→立即报名 | 成功;按钮变取消报名 |
| YDD-CLASS-UI-005 | 培训详情 | 取消报名 | UI 测试 | 手工 | 已报名 | ry 登录 | 点击取消报名 | 成功;恢复可报名 |
| YDD-CLASS-UI-006 | 培训详情 | 未登录报名 | UI 测试 | 手工 | 401 | 未登录 | 点击立即报名 | 提示登录或跳转登录页 |
| YDD-ENROLL-UI-001 | 我的报名 | 入口需登录 | UI 测试 | 手工 | mine | 未登录 | 我的→我的报名 | 跳转登录页 |
| YDD-ENROLL-UI-002 | 我的报名 | 列表与筛选 | UI 测试 | 手工 | 列表 | ry 登录;有报名 | 我的→我的报名;切换状态 Chip | 双列卡片;筛选正确 |
| YDD-ENROLL-UI-003 | 我的报名 | 进培训详情 | UI 测试 | 手工 | 跳转 | 有卡片 | 点击卡片 | 进入 training-detail |
| YDD-MED-UI-001 | 用药工具 | 药名空查询 | UI 测试 | 手工 | 校验 | 查询 Tab | 药名空→查询 | Toast 提示药名不能为空 |
| YDD-MED-UI-002 | 用药工具 | 药物查询成功 | UI 测试 | 手工 | 展示 | 库有药 | 输入有效药名→查询 | 展示类型、休药期、用法等 |
| YDD-MED-UI-003 | 用药工具 | 休药期缺日期 | UI 测试 | 手工 | 校验 | 休药期 Tab | 仅填药名→计算 | 提示选停药日期 |
| YDD-MED-UI-004 | 用药工具 | 休药期计算 | UI 测试 | 手工 | 计算 | 有效药+日期 | 选日期→计算 | 展示 endDate、天数 |
| YDD-MED-UI-005 | 用药工具 | 配伍少于 2 药 | UI 测试 | 手工 | 校验 | 配伍 Tab | 仅 1 个药名→检查 | 提示至少 2 个药名 |
| YDD-MED-UI-006 | 用药工具 | 配伍重复药名 | UI 测试 | 手工 | 校验 | 配伍 Tab | 两行相同药名 | 提示不可重复 |
| YDD-MED-UI-007 | 用药工具 | 配伍成功 | UI 测试 | 手工 | 结果 | ≥2 不同药名 | 检查 | 展示 compatResult / 禁忌 |
| YDD-MKT-UI-001 | 牦牛行情 | 主卡片数据 | UI 测试 | 手工 | 展示 | 有行情 | 打开牦牛行情 | 昨日价、涨跌等展示 |
| YDD-MKT-UI-002 | 牦牛行情 | 7/30 日切换 | UI 测试 | 手工 | 图表 | 有走势 | 切换 7 日/30 日 | 折线图更新 |
| YDD-MKT-UI-003 | 牦牛行情 | 列表分页 | UI 测试 | 手工 | 滚动 | 有多日数据 | 滚动到底 | 加载更多每日行情 |
| YDD-BOOK-UI-001 | 预约服务 | 三类型 Tab | UI 测试 | 手工 | Tab | 有资源 | 切换兽医/专家/机构 | 列表 resourceType 对应 |
| YDD-BOOK-UI-002 | 预约服务 | 日期筛选 | UI 测试 | 手工 | 日期 Chip | 有近 7 日 | 选某日 | 列表按日期过滤 |
| YDD-BOOK-UI-003 | 预约服务 | 名称搜索 | UI 测试 | 手工 | 防抖 | 有资源 | 输入名称 | 300ms 后列表过滤 |
| YDD-BOOK-UI-004 | 预约服务 | 未登录预约 | UI 测试 | 手工 | ensureApiToken | 未登录 | 点某资源「预约」 | Toast 请先登录→登录页 |
| YDD-VET-UI-001 | 预约兽医 | 表单必填 | UI 测试 | 手工 | 校验 | ry 登录;进兽医详情 | 留空→提交 | 各必填项 Toast |
| YDD-VET-UI-002 | 预约兽医 | 手机号格式 | UI 测试 | 手工 | 校验 | 同上 | 输入非法手机号 | 提示格式错误 |
| YDD-VET-UI-003 | 预约兽医 | 非服务日禁用 | UI 测试 | 手工 | weekday | 资源不含今日 weekday | 查看日期 Chip | 今日不可选或禁用 |
| YDD-VET-UI-004 | 预约兽医 | 提交成功 | UI 测试 | 手工 | 主流程 | 合法表单 | 填全→提交 | 成功;状态待确认 |
| YDD-VET-UI-005 | 预约兽医 | 同日重复预约 | UI 测试 | 手工 | 防重复 | 同日已有有效预约 | 再进同资源同日 | 按钮「已预约」禁用 |
| YDD-EXPERT-UI-001 | 预约专家 | 评分跳转 | UI 测试 | 手工 | 评价入口 | 专家有评分 | 点击评分区 | 进入 review-history?id= |
| YDD-EXPERT-UI-002 | 预约专家 | 提交预约 | UI 测试 | 手工 | 同兽医 | ry 登录 | 填表提交 | 成功;status=0 |
| YDD-ORG-UI-001 | 预约机构 | 仅姓名电话 | UI 测试 | 手工 | 简化表单 | ry 登录 | 打开机构预约弹窗 | 无时段/地址手填项(地址取机构) |
| YDD-ORG-UI-002 | 预约机构 | 无机构地址 | UI 测试 | 手工 | 约束 | 机构 detailAddress 空 | 提交 | 不可提交或提示无地址 |
| YDD-ORG-UI-003 | 预约机构 | 提交成功 | UI 测试 | 手工 | status=5 | 有效机构 | 提交 | 成功;status 已预约 |
| YDD-MYBOOK-UI-001 | 我的预约 | 兽医 Tab 筛选 | UI 测试 | 手工 | statusTab | ry 有各状态预约 | 我的→我的预约;兽医 Tab;切 未开始/已完成/已取消 | 列表符合状态映射 |
| YDD-MYBOOK-UI-002 | 我的预约 | 专家待评价 | UI 测试 | 手工 | pendingReview | 专家已完成未评 | 专家 Tab→待评价 | 仅未评价已完成项 |
| YDD-MYBOOK-UI-003 | 我的预约 | 取消预约 | UI 测试 | 手工 | 取消 | 待确认/已预约 | 取消预约→确定 | 状态变已取消 |
| YDD-MYBOOK-UI-004 | 我的预约 | 取消二次确认 | UI 测试 | 手工 | confirm | 可取消项 | 取消→点取消 | 状态不变 |
| YDD-MYBOOK-UI-005 | 我的预约 | 专家评价入口 | UI 测试 | 手工 | 评价 | 已完成未评 | 点击「评价」 | 进入 review-history mode=submit |
| YDD-MYBOOK-UI-006 | 我的预约 | 查看评价 | UI 测试 | 手工 | 只读 | 已评价 | 点击「查看评价」 | mode=view;三维分展示 |
| YDD-REVIEW-UI-001 | 历史评价 | 评分必选 | UI 测试 | 手工 | 1~5 分 | 提交模式 | 不选分→提交 | 提示选择评分 |
| YDD-REVIEW-UI-002 | 历史评价 | 总结必填 | UI 测试 | 手工 | summary | 提交模式 | 总结空→提交 | 提示必填 |
| YDD-REVIEW-UI-003 | 历史评价 | 总结超长 | UI 测试 | 手工 | ≤100 字 | 提交模式 | 输入 101 字 | 不可提交或提示超长 |
| YDD-REVIEW-UI-004 | 历史评价 | 提交成功 | UI 测试 | 手工 | 主流程 | 合法三维分+总结 | 提交 | 成功;我的预约变「查看评价」 |
| YDD-CLINIC-UI-001 | 在线问诊 | 兽医列表 | UI 测试 | 手工 | 列表 | 有在线兽医 | 打开在线问诊 | 展示姓名、单位等 |
| YDD-CLINIC-UI-002 | 在线问诊 | 资料页 | UI 测试 | 手工 | vet-profile | 有兽医 | 点「资料」 | 展示简介、地址、服务时间 |
| YDD-CLINIC-UI-003 | 在线问诊 | 未登录问诊 | UI 测试 | 手工 | 鉴权 | 未登录 | 点「问诊」 | 跳转登录 |
| YDD-CLINIC-UI-004 | 在线问诊 | 开启会话 | UI 测试 | 手工 | 主流程 | ry 登录 | 点「问诊」 | 进入 consult-detail |
| YDD-CONSULT-UI-001 | 问诊详情 | 发文本 | UI 测试 | 手工 | msgType=1 | 有 session | 输入文本→发送 | 消息出现在列表 |
| YDD-CONSULT-UI-002 | 问诊详情 | 发图片 | UI 测试 | 手工 | msgType=2 | 有 session | 选图片发送 | 图片消息展示 |
| YDD-CONSULT-UI-003 | 问诊详情 | 超长文本 | UI 测试 | 手工 | maxlength | 有 session | 输入 >2000 字 | 无法输入或截断 |
| YDD-MSG-UI-001 | 消息 | 未登录 | UI 测试 | 手工 | 鉴权 | 未登录 | 点消息 Tab | 提示登录或空态+跳转 |
| YDD-MSG-UI-002 | 消息 | 会话列表 | UI 测试 | 手工 | 列表 | ry 登录;有问诊 | 消息 Tab | 展示兽医名、最后一条预览 |
| YDD-MSG-UI-003 | 消息 | 搜索过滤 | UI 测试 | 手工 | 本地搜 | 有多会话 | 输入兽医名 | 列表本地过滤 |
| YDD-MSG-UI-004 | 消息 | 进详情 | UI 测试 | 手工 | 跳转 | 有会话 | 点击一条 | consult-detail |
| YDD-MSG-UI-005 | 消息 | 长按删除 | UI 测试 | 手工 | hide | 有会话 | 长按→删除 | 列表移除;API hide 成功 |
| YDD-AI-UI-001 | AI Tab | 未登录列表 | UI 测试 | 手工 | 鉴权 | 未登录 | AI Tab | 提示登录或无法加载 |
| YDD-AI-UI-002 | AI Tab | 会话列表 | UI 测试 | 手工 | 列表 | ry 登录 | AI Tab | 展示历史 AI 会话 |
| YDD-AI-UI-003 | AI Tab | 新建会话 | UI 测试 | 手工 | 创建 | ry 登录 | 点底部新建 | 创建成功→跳转 ai-assistant |
| YDD-AI-UI-004 | AI Tab | 长按删除 | UI 测试 | 手工 | hide | 有会话 | 长按→删除 | 会话从列表消失 |
| YDD-AIASST-UI-001 | AI助手 | 免责声明 | UI 测试 | 手工 | 顶栏 | 进助手页 | 查看顶部 | 展示 disclaimer |
| YDD-AIASST-UI-002 | AI助手 | 模型切换 | UI 测试 | 手工 | LLM | ry 登录 | 切换 auto/疾病/通用/饲喂 | 发送后走对应模型 |
| YDD-AIASST-UI-003 | AI助手 | 发文本 | UI 测试 | 手工 | 聊天 | 有 session | 输入问题→发送 | 展示用户消息与 AI 回复 |
| YDD-AIASST-UI-004 | AI助手 | 空内容禁用 | UI 测试 | 手工 | disabled | 无文本无附件 | 查看发送按钮 | 不可点 |
| YDD-AIASST-UI-005 | AI助手 | 图片附件 | UI 测试 | 手工 | 多媒体 | 有 session | 选图片发送 | 上传并展示 |
| YDD-MINE-UI-001 | 我的 | 未登录展示 | UI 测试 | 手工 | 登录按钮 | 未登录 | 我的 Tab | 显示登录按钮 |
| YDD-MINE-UI-002 | 我的 | 已登录信息 | UI 测试 | 手工 | 用户信息 | ry 登录 | 我的 Tab | 展示昵称/头像等 |
| YDD-MINE-UI-003 | 我的 | 退出登录 | UI 测试 | 手工 | logOut | ry 登录 | 退出→确认 | 清 Token;进登录页 |
| YDD-MINE-UI-004 | 我的 | 编辑资料占位 | UI 测试 | 手工 | 即将上线 | ry 登录 | 点编辑资料 | Toast 即将上线 |
| YDD-MINE-UI-005 | 我的 | 我的预约入口 | UI 测试 | 手工 | 导航 | ry 登录 | 点我的预约 | 进入 my-booking |
| YDD-STORE-UI-001 | 我的店铺 | 占位页 | UI 测试 | 手工 | 占位 | 首页进我的店铺 | 打开页面 | 展示占位文案;无报错 |
| 模块 | 接口 API | 界面 UI |
|---|---|---|
| 登录鉴权 | LOGIN-API-001~005 | LOGIN-UI-001~007 |
| Tab / i18n | — | TAB-UI-001~002;I18N-UI-001~003 |
| 首页 | — | HOME-UI-001~005 |
| 养殖资讯 | NEWS-API-001~003 | NEWS-UI-001~005 |
| 畜牧资源 | RES-API-001~004 | RES-UI-001~002 |
| 农技/培训/报名 | CLASS-API-001~005 | CLASS-UI-001~006;ENROLL-UI-001~003 |
| 用药工具 | MED-API-001~003 | MED-UI-001~007 |
| 牦牛行情 | MKT-API-001~004 | MKT-UI-001~003 |
| 预约服务 | BOOK-API-001~005 | BOOK-UI-001~004;VET/EXPERT/ORG-UI |
| 我的预约/评价 | MYBOOK/REVIEW-API | MYBOOK-UI-001~006;REVIEW-UI-001~004 |
| 在线问诊 | CLINIC/CONSULT-API | CLINIC/CONSULT-UI |
| 消息 | MSG-API-001~002 | MSG-UI-001~005 |
| AI | AI-API-001~004 | AI-UI-001~004;AIASST-UI-001~005 |
| 我的 | — | MINE-UI-001~005 |
| 占位 | — | STORE-UI-001 |
ruoyi-ui-app 目录 npm i -D @playwright/test;npx playwright install chrome。// playwright.config.js
export default {
use: {
channel: 'chrome',
locale: 'zh-CN',
baseURL: 'http://localhost:5173',
viewport: { width: 390, height: 844 }
}
}
tests/auth.setup.js):await page.goto('/#/pages/login/index')
await page.getByPlaceholder(/用户名|账号/).fill('ry')
await page.getByPlaceholder(/密码/).fill('123456')
await page.getByRole('button', { name: /登录/ }).click()
await page.waitForURL(/pages\/home\/index/)
await context.storageState({ path: 'playwright/.auth/ry.json' })
await page.goto('/#/package-a/my-booking/index')
await page.goto('/#/pages/message/index')
await page.route('**/app/myAppointment/list', route =>
route.fulfill({ status: 200, body: JSON.stringify({ code: 401, msg: '未登录' }) })
)
#/pages/mine/index 执行语言切换后,断言 [class*="lang-bo"] 存在且 Tab 文案变化。