Files
zclaw_openfang/docs/PRE_RELEASE_E2E_TEST_REPORT.md
iven 5f47e62a46
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
fix(desktop): hide model selector in Tauri runtime — SaaS token pool routes models
Model selector was cosmetic-only in desktop mode: chatStream never passes
model param to backend. Hiding prevents user confusion and 404 errors when
selecting models not in SaaS token pool.

Also adds E2E test report covering 168 messages, 4 bugs found (P0 fixed).
2026-04-09 18:35:34 +08:00

4.3 KiB
Raw Blame History

ZCLAW 发布前 E2E 测试报告

日期: 2026-04-09 测试方式: Chrome DevTools MCP + Tauri MCP 端到端自动化 测试目标: 模拟真实用户操作,验证核心功能稳定性

测试概览

指标
总消息数 168 条
用户消息 84 条
AI 回复 84 条19 条真实内容 + 65 条空响应/错误)
测试时长 ~2 小时
测试模型 GLM-4.7前18轮, deepseek-chat / glm-4-flash后续错误

测试场景

场景 1: 随机话题对话16 轮)

  • 状态: 部分成功
  • 问题: GLM-4.7 响应慢(~67s/轮),部分超时
  • 发现: 历史消息中的 "Sending..." 标签导致完成检测误判

场景 2: 教育行业连续对话89 轮脚本,模拟小学班主任王老师)

  • 6 个阶段: 身份建立 → 教学深化 → 班级管理 → 期末收尾 → 新学期展望 → 深度验证
  • 前 18 轮GLM-4.7: 全部成功,对话质量极高
  • 后 65 轮: 全部失败(模型错误导致空回复)

发现的 BUG

P0: 模型选择器桌面端误导用户

状态: 已修复

问题: Tauri 桌面端的模型选择器让用户以为可以切换模型,但实际模型由 SaaS Token 池决定,前端选择不传后端。

影响: 用户选择 "GLM-4.7" 但实际可能调用 "glm-4-flash"(不存在),导致 404 错误和空回复。

根因: StreamChatRequestRustchatStreamTS均无 model 参数。模型由后端 agent 配置决定。

修复: 在 ChatArea.tsx 中对 Tauri 运行时隐藏模型选择器。

文件: desktop/src/components/ChatArea.tsx

P1: API 错误时 assistant 消息内容为空

问题: 当 LLM 返回错误404/429assistant 消息的 content 为空字符串,错误信息仅显示在 UI 的错误气泡中,不存入 Store。

影响:

  • 对话历史中的空消息无法追溯错误原因
  • 记忆系统可能索引空内容
  • 侧边栏消息预览显示为空白

建议: 将错误信息存入 message.contentmessage.error 字段。

P2: 429 Rate Limit 未优雅处理

问题: DeepSeek API 60 RPM 限流触发后,前端直接显示错误,没有重试/退避机制。

影响: 自动化测试中高频发送消息时容易触发限流。

建议: 前端实现指数退避重试2s → 4s → 8s最多 3 次。

P3: 错误消息的"重试"按钮堆叠

问题: 连续多轮失败后UI 中堆叠了 7+ 个"重试"按钮(见截图),影响可读性。

建议: 错误消息应可折叠,或只保留最后一个错误的"重试"按钮。

对话质量评估(前 18 轮 GLM-4.7

上下文记忆测试

测试项 结果
记住用户身份(王老师) PASS
记住班级信息38人、三年级2班 PASS
记住学生名字(张小明、刘小花) PASS
引用之前讨论的内容 PASS
教学建议的专业性 PASS
情感支持和沟通技巧 PASS

典型回复示例

第 8 轮(注意力评估建议): AI 正确识别了"家校表现一致"这一关键信号,建议"温和、专业、不贴标签"地沟通,并提供了具体话术模板。

第 17 轮(公开课选课文): AI 综合考虑了班级中张小明(需要动觉学习)和刘小花(需要信心建立)的情况,推荐了三个选项并分析利弊。

内存和性能

指标 评价
初始内存 30 MB 正常
40 条消息时 32 MB 稳定
160 条消息时 31-35 MB 无泄漏
GC 后 回落到 31 MB 正常
平均 AI 响应时间 (GLM-4.7) 67s 偏慢,但非 BUG
平均 AI 响应时间 (deepseek) 1.3s API 报错,非真实响应

修复记录

修改 文件 说明
隐藏桌面端模型选择器 desktop/src/components/ChatArea.tsx isTauriRuntime() 条件渲染

未修复项(后续跟进)

  1. P1: API 错误时 assistant 消息内容为空 — 需要修改 streamStore 的错误处理
  2. P2: 429 Rate Limit 重试机制 — 需要在 chatStream 中实现退避
  3. P3: 错误消息堆叠 — UI 优化

测试环境

  • OS: Windows 11 Pro (10.0.26200)
  • 显示器: 5120x2880 @ 2.5x scale
  • 应用版本: ZCLAW 0.1.0
  • 后端: Tauri 2.x + Rust kernel
  • 运行时模型: SaaS Token 池路由