Files
wecom_it_smart_desk/docs/03-测试文档/02-E2E测试/E2E-CHECKLIST-v0.7.0.md
T
Simon 44e77dcb0e 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 行
2026-08-03 18:46:55 +08:00

5.4 KiB

E2E 验收清单 v0.7.0(扫码登录 + MFA)

部署完 v0.7.0 后,逐项打勾。任何一项 立即回滚。 每项给出预期结果 + 验证方法 + 失败处理。


0. 部署完成(用户跑过 DEPLOY-LOGIN-MIGRATION-v0.7.0.md 全部步骤)

  • 后端 alembic upgrade head 跑通(head = 025_messages_id_uuid)
  • 4 端 dist 已上传到宿主机 /opt/wecom-it-desk/frontend-*/dist/
  • nginx nginx -t 通过 + nginx -s reload 完成
  • docker restart wecom_it_backend 成功
  • 容器状态 docker ps 显示 backend/redis/postgres 全部 Up

1. 扫码登录(Phase 1.1 / 1.2 / 1.3)

1.1 门户页面加载

  • 浏览器打开 https://<生产域名>/itportal/
  • 看到 QrcodeLogin 页面(二维码 + 倒计时)
  • 不再显示旧的"账号密码"登录

1.2 二维码生成

  • 倒计时从 120 秒开始
  • 刷新按钮可用
  • DevTools Network: POST /api/auth_qrcode/create 返回 200 + ticket

1.3 扫码

  • 用企微扫 → 企微 OAuth2 跳回 callback
  • 门户页面状态从 waitingscanned(显示"已扫码,等待确认")
  • DevTools Network: POST /api/auth_qrcode/scan 成功

1.4 坐席确认

  • 已登录坐席在 /itagent/ 收到确认弹窗
  • 点"确认"→ 门户 waitingconfirmed → 跳转 /itagent/
  • localStorage 有 agent_token / portal_token

1.5 角色分发

  • 双角色坐席(admin+agent)→ 跳 /itportal/select
  • 仅 admin → 跳 /itadmin/
  • 仅 agent → 跳 /itagent/
  • 仅 user → 跳 /itdesk/

1.6 过期处理

  • 120 秒不扫 → 状态变 expired + 提示"二维码已过期,请刷新"

2. MFA 绑定(Phase 2.4)

2.1 绑定入口

  • 坐席登录后 → 顶栏头像 → "绑定 MFA"
  • /itagent/mfa-bind 页面

2.2 扫码绑定

  • 看到 TOTP 二维码(otpauth://totp/...)
  • 用 Google Authenticator / 微软 Authenticator 扫
  • 输入 6 位 OTP → 点"验证" → 成功
  • 页面显示"已绑定" + 备份信息

2.3 API 验证

  • GET /api/mfa/status 返回 bound: true, enabled: true
  • GET /api/mfa/users (admin) 看到该坐席 bound=true

3. MFA 验证(高危操作守卫)

3.1 30 分钟有效期

  • 坐席 admin 角色登录 → 绑 MFA → 调 /api/admin/high-risk/demo/role_change
  • 未先调 /api/mfa/verify → 返回 2001 需要 OTP
  • POST /api/mfa/verify {otp_code: "123456"} → 成功
  • 再调 高危端点 → 200 通过
  • 等 31 分钟 → 再次调 → 又返回 2001(TTL 失效)

3.2 5 类高危操作

  • POST /api/admin/high-risk/demo/role_change → 200
  • POST /api/admin/high-risk/demo/config_change → 200
  • POST /api/admin/high-risk/demo/data_export → 200
  • POST /api/admin/high-risk/demo/account_disable → 200
  • POST /api/admin/high-risk/demo/account_create_reset → 200

3.3 角色拒绝

  • 非 admin 角色调高危端点 → 4003 仅管理员

3.4 白名单查询

  • GET /api/admin/high-risk/whitelist 返回 5 类元数据

4. P0/P1 合规验证

4.1 WebSocket 连接

  • H5 员工端开 DevTools → Network → WS
  • WS 连接建立,没有 1006 / missing argument 错误
  • 坐席发消息 → H5 端 100ms 内收到(无轮询 3-5s 延迟)

4.2 消息 ID 类型

  • psql -d wecom_it -c 'SELECT id FROM messages LIMIT 1;' 返回 UUID 格式
  • 前端消息轮询不再偶发 500
  • 跨会话消息不再串号

4.3 nginx access_log

  • docker exec wecom_it_nginx tail /var/log/nginx/access.log | head -3
  • 不包含 Authorization: / Cookie: 字样
  • 只剩 IP / method / path / status

4.4 Gitea token

  • cat .git/config | grep 5ad83d 返回空(token 已撤销)
  • git push 试一下:应该失败(无 push 权限,符合预期)

5. 端到端业务流(回归)

5.1 H5 → 坐席 完整流程

  • H5 员工发起会话 → 排队
  • 坐席收到分配 → WS 推送
  • 坐席发消息 → 员工 < 100ms 收到
  • 转人工、邀请、满意度流程无 regression

5.2 管理员后台

  • 仪表盘加载正常
  • 坐席管理 CRUD 正常
  • 功能开关可切换
  • 集成配置 6 个系统显示完整
  • MFA 管理页 /mfa-manage 表格可搜索/过滤/分页
  • 重置 MFA 按钮可弹 ElMessageBox 二次确认

5.3 端点路径(临时 4 xfail)

  • POST /api/conversations/{id}/messages 仍 404 — pre-existing,不影响生产
  • 实际走 H5 的 /api/h5/conversations/current/messages 路径

6. 性能与稳定性

  • 长时间压测(可选): wrk -t4 -c100 -d60s https://<域>/api/auth_qrcode/create
  • 无 5xx 错误
  • Redis 连接稳定(无 timeout)
  • PG CPU < 50%

7. 回滚预案

如果任意 项:

# 1. 停止后端
sudo docker stop wecom_it_backend

# 2. 恢复 4 端 dist
sudo cp -r /opt/wecom-it-desk/dist-backup-*/* /opt/wecom-it-desk/frontend-*/dist/

# 3. 回滚 alembic(只回 025,022/023 保留)
sudo docker start wecom_it_backend
sudo docker exec wecom_it_backend alembic downgrade 024

# 4. nginx 回滚
sudo docker exec wecom_it_nginx nginx -s reload

详见 DEPLOY-LOGIN-MIGRATION-v0.7.0.md 末尾"回滚预案"。


验收人签字

角色 姓名 日期 结果
部署
验收
复核