chore(docs): docs/ 目录全面重新编号 + 重组
**重构前**(旧编号 02-11): - docs/02-产品需求/ → 00 产品规划/PRD - docs/03-技术架构/ → 01-05 子目录散落 - docs/04-原型设计/ → 01-02 产品设计(HTML 原型) - docs/05-原型设计/ → screens/ - docs/06-测试素材/ → 02-E2E / 03-功能 / 04-版本测试 - docs/07-项目管理/ → 任务说明书/日报/计划 - docs/08-安全审计/ → 审计报告 - docs/09-堡垒运维/ → toolbox / deploy - docs/10-项目管理/ → 任务说明书(重复) - docs/11-历史归档/ → deploy-nas-archived **重构后**(新编号 00-07,语义化): - docs/00-产品开发流程与文档管理规范.md - docs/00-版本迭代总览.md - docs/01-产品文档/ (PRD/原型/认证/会话/AI 服务/坐席/集成) - docs/02-技术文档/ (技术方案/架构图/重构记录/前端改造/实现配置) - docs/03-测试文档/ (E2E/功能用例/版本报告/缺陷单) - docs/04-运维文档/ (部署运维/运维指南) - docs/05-运营文档/ (品牌推广/用户手册) - docs/06-安全审计/ (审计报告) - docs/07-项目管理/ (任务说明书/日报/计划/看板) **净收益**: - 目录编号与产品文档管理规范对齐(按文档阶段 01-07 编号) - 消除 02-产品需求 与 10-项目管理 的编号重叠 - 子目录按文档类型分组(如 01-产品文档/00-产品规划、01-产品文档/01-认证与登录) - 把运维/安全/项目管理从 0X 散落改为 04/06/07 合计 494 文件 + 78495 行 / - 14076 行
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
# 测试用例 — 员工端结束会话固定按钮
|
||||
|
||||
> **关联需求编号**: REQ-用户-005
|
||||
> **关联PRD**: `01-产品文档/05-用户端H5/PRD-REQ-用户-005-头像菜单退出-v1.0.md`
|
||||
> **关联技术方案**: `02-技术文档/技术方案-REQ-用户-005-头像菜单退出-v1.0.md`
|
||||
> **版本**: v1.1
|
||||
> **日期**: 2026-07-26
|
||||
> **作者**: Simon
|
||||
> **测试类型**: 功能测试
|
||||
|
||||
---
|
||||
|
||||
## 一、功能验收(7 项)
|
||||
|
||||
### TC-001 点击「结束会话」按钮弹出确认框
|
||||
|
||||
- **Given** 员工已登录,处于聊天页(`/h5/`)
|
||||
- **When** 点击标题栏头像右侧的「结束会话」按钮
|
||||
- **Then**
|
||||
- [ ] 确认对话框(van-dialog)弹出
|
||||
- [ ] 标题为"结束会话"
|
||||
- [ ] 消息含"退出后会话记录会清空"
|
||||
- [ ] 按钮:左侧"取消"(灰色),右侧"确定退出"(红色)
|
||||
|
||||
### TC-002 点击「取消」关闭确认框
|
||||
|
||||
- **Given** 确认对话框已弹出
|
||||
- **When** 点击「取消」按钮
|
||||
- **Then**
|
||||
- [ ] 对话框关闭
|
||||
- [ ] 回到聊天页,会话状态不变
|
||||
- [ ] 消息列表完整保留
|
||||
- [ ] 不发起任何 API 请求
|
||||
|
||||
### TC-003 确认退出 — 有活跃会话(完整流程)
|
||||
|
||||
- **Given** 员工有活跃会话(AI 对话中),处于聊天页
|
||||
- **When** 点击确定退出
|
||||
- **Then**
|
||||
- [ ] Loading 状态显示(按钮 loading 或 toast)
|
||||
- [ ] 后端 `POST /h5/conversations/current/close` 被调用(检查 Network 面板)
|
||||
- [ ] 后端 `POST /api/auth/logout` 被调用
|
||||
- [ ] 前端 Token 被清除(localStorage 中无 token)
|
||||
- [ ] 页面跳转到 `/h5/login`(或窗口关闭)
|
||||
- [ ] 总耗时 < 3 秒
|
||||
|
||||
### TC-004 确认退出 — 无活跃会话
|
||||
|
||||
- **Given** 员工刚登录,尚未发起任何对话(无活跃会话)
|
||||
- **When** 点击确定退出
|
||||
- **Then**
|
||||
- [ ] 不调用 `close` API(跳过步骤1)
|
||||
- [ ] 直接调用 `POST /api/auth/logout`
|
||||
- [ ] 流程正常完成,跳转 `/h5/login`
|
||||
- [ ] 无控制台报错
|
||||
|
||||
### TC-005 「结束会话」按钮 hover 态视觉反馈(桌面端)
|
||||
|
||||
- **Given** 桌面浏览器访问 H5 员工端
|
||||
- **When** 鼠标悬停在「结束会话」按钮上
|
||||
- **Then**
|
||||
- [ ] 光标变为手型(`cursor: pointer`)
|
||||
- [ ] 按钮背景填充红色(`#ee0a24`)、文字变白色
|
||||
- [ ] 无布局抖动
|
||||
|
||||
### TC-006 退出后 Token 失效
|
||||
|
||||
- **Given** 已完成退出流程,跳转到 `/h5/login`
|
||||
- **When** 手动在地址栏输入 `/h5/` 并回车
|
||||
- **Then**
|
||||
- [ ] 路由守卫拦截,重定向到 `/h5/login`
|
||||
- [ ] 不闪现聊天页内容
|
||||
|
||||
### TC-007 企微 WebView 真实环境退出
|
||||
|
||||
- **Given** 企微 APP 内打开 H5 员工端
|
||||
- **When** 执行完整退出流程
|
||||
- **Then**
|
||||
- [ ] 窗口成功关闭(或跳转登录页作为降级)
|
||||
- [ ] 不出现白屏或错误页
|
||||
- [ ] 无 JS 报错
|
||||
|
||||
---
|
||||
|
||||
## 二、边界验收(5 项)
|
||||
|
||||
### TC-008 close API 失败不阻塞退出
|
||||
|
||||
- **Given** 员工有活跃会话
|
||||
- **When** 模拟网络故障(DevTools 阻断 `/h5/conversations/current/close`),然后点击确定退出
|
||||
- **Then**
|
||||
- [ ] Toast 提示"会话关闭失败,继续退出…"
|
||||
- [ ] 流程继续执行(仍然调用 logout API)
|
||||
- [ ] 最终正常跳转 `/h5/login`
|
||||
|
||||
### TC-009 logout API 失败留在当前页
|
||||
|
||||
- **Given** 员工处于聊天页
|
||||
- **When** 模拟网络故障(DevTools 阻断 `/api/auth/logout`),然后点击确定退出
|
||||
- **Then**
|
||||
- [ ] Toast 提示"退出失败,请稍后重试"
|
||||
- [ ] 页面不跳转,停留在聊天页
|
||||
- [ ] 用户可重新尝试退出
|
||||
- [ ] Token 和会话状态未被清除
|
||||
|
||||
### TC-010 防重复点击
|
||||
|
||||
- **Given** 确认对话框已弹出
|
||||
- **When** 快速连续点击「确定退出」按钮 2 次以上
|
||||
- **Then**
|
||||
- [ ] 只发起一次 API 调用流程
|
||||
- [ ] 不出现重复的 close/logout 请求
|
||||
- [ ] 不会同时跳转两次
|
||||
|
||||
### TC-011 退出后 WebSocket 断开
|
||||
|
||||
- **Given** 退出前 WebSocket 连接正常
|
||||
- **When** 完成退出流程
|
||||
- **Then**
|
||||
- [ ] WebSocket 连接断开(DevTools Network WS 标签确认)
|
||||
- [ ] 无 WebSocket 重连尝试
|
||||
- [ ] 无心跳包继续发送
|
||||
|
||||
### TC-012 InputBar「结束咨询」按钮不受影响
|
||||
|
||||
- **Given** 人工服务态,InputBar 显示「结束咨询」按钮
|
||||
- **When** 点击 InputBar 的「结束咨询」按钮
|
||||
- **Then**
|
||||
- [ ] 流程与改造前完全一致(弹出评价 → 提交 → 会话关闭)
|
||||
- [ ] 头像菜单功能不影响此流程
|
||||
- [ ] 两个出口独立运作,互不干扰
|
||||
|
||||
---
|
||||
|
||||
## 三、暗黑模式(1 项)
|
||||
|
||||
### TC-013 暗黑模式下按钮和对话框样式正确
|
||||
|
||||
- **Given** 切换到深色主题
|
||||
- **When** 查看「结束会话」按钮,然后点击触发确认对话框
|
||||
- **Then**
|
||||
- [ ] 「结束会话」按钮颜色适配暗色(CSS 变量自动处理)
|
||||
- [ ] 按钮文字可读(对比度足够)
|
||||
- [ ] 确认对话框(van-dialog)适配暗色
|
||||
|
||||
---
|
||||
|
||||
## 测试环境要求
|
||||
|
||||
| 环境 | 要求 |
|
||||
|------|------|
|
||||
| 浏览器 | Chrome / Edge 最新版 |
|
||||
| 移动端 | 企微 iOS/Android 最新版 |
|
||||
| 后端 | 开发环境或 staging,`/api/auth/logout` + `/h5/conversations/current/close` 可用 |
|
||||
| 网络 | 需能模拟断网/阻断特定请求(Chrome DevTools Network 面板) |
|
||||
|
||||
---
|
||||
|
||||
## 测试结果记录
|
||||
|
||||
| 用例编号 | 结果 | 测试人 | 日期 | 备注 |
|
||||
|----------|------|--------|------|------|
|
||||
| TC-001 | ⬜ 待测 | | | 点击按钮弹出确认框 |
|
||||
| TC-002 | ⬜ 待测 | | | 取消返回 |
|
||||
| TC-003 | ⬜ 待测 | | | 有活跃会话完整退出 |
|
||||
| TC-004 | ⬜ 待测 | | | 无活跃会话退出 |
|
||||
| TC-005 | ⬜ 待测 | | | 按钮 hover 态 |
|
||||
| TC-006 | ⬜ 待测 | | | Token 失效验证 |
|
||||
| TC-007 | ⬜ 待测 | | | 企微真实环境 |
|
||||
| TC-008 | ⬜ 待测 | | | close API 失败 |
|
||||
| TC-009 | ⬜ 待测 | | | logout API 失败 |
|
||||
| TC-010 | ⬜ 待测 | | | 防重复点击 |
|
||||
| TC-011 | ⬜ 待测 | | | WS 断开 |
|
||||
| TC-012 | ⬜ 待测 | | | InputBar 互不干扰 |
|
||||
| TC-013 | ⬜ 待测 | | | 暗黑模式 |
|
||||
|
||||
---
|
||||
|
||||
*文档结束*
|
||||
Reference in New Issue
Block a user