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
9.3 KiB
9.3 KiB
ZCLAW 三端联调测试报告 2026-04-14
测试类型: 系统性联调测试(SaaS + Admin V2 + Tauri 桌面端) 测试方法: 真实 API curl + Chrome DevTools UI 操作 + Tauri MCP 桌面端操作 + 数据一致性交叉验证 测试时间: 2026-04-14 09:40 ~ 11:00 测试环境: Windows 11 Pro / SaaS :8080 / Admin V2 :5173 / Tauri Dev :1420 / PostgreSQL
总览
| 维度 | 结果 |
|---|---|
| SaaS 后端 API | 30+ 端点测试,27 正常,3 异常 |
| Admin V2 页面 | 16 页面测试,14 正常,2 有问题 |
| Tauri 桌面端 | 核心功能 8 项测试,6 正常,2 异常 |
| 数据一致性 | 5 项交叉验证,3 一致,2 不一致 |
| P0 问题 | 1 个 |
| P1 问题 | 3 个 |
| P2 问题 | 3 个 |
| P3 问题 | 3 个 |
与上次测试 (2026-04-13) 对比
| 变化 | 详情 |
|---|---|
| P0-1 模型不存在 | 已修复 — deepseek-chat 正常工作 |
| P0-2 中文编码损坏 | 已修复 — Plans/Roles/Config 中文正确 |
| P1-3 UI 模型选择器 | 已修复 — Tauri 端模型选择生效 |
| P1-4 Industries 404 | 根因定位 — SaaS 二进制未重编译 |
| P1-7 用量限额不一致 | 仍存在 — plan=100, usage.max=2000 |
| P1-8 用量未执行 | 仍存在 — input_tokens 6.77x 超限 |
| P2-9 Token 计数为零 | 仍存在 — 17 个任务中 5 个 tokens=0 |
| P2-10 Tauri Token 统计 | 仍存在 — 桌面端显示"总 Token: 0" |
P0 CRITICAL
P0-NEW-01: SaaS 运行二进制严重过期
- 现象: 运行中的 zclaw-saas.exe 构建于 2026-04-11 22:38,但代码自 2026-04-12 起有多项关键变更未反映到运行服务中
- 影响范围:
- Industries API 全部 404(路由在 04-12 添加到 main.rs)
- Knowledge Phase A 功能不可用(04-12 变更)
- 任何 04-12 之后提交的修复均未生效
- 证据:
- 二进制修改时间:
2026-04-11 22:38:20 - 代码最新影响 main.rs 的提交:
c3593d3 2026-04-12 18:36:05 git log -- crates/zclaw-saas/src/main.rs确认有 2 个提交未编译
- 二进制修改时间:
- 修复:
cargo build -p zclaw-saas && 重启 SaaS 服务
P1 HIGH
P1-04: Industries API 路由未注册(二进制过期导致)
- 现象:
GET /api/v1/industries返回 HTTP 404 - 根因: P0-NEW-01 — Industry 路由在
5d1050b (2026-04-12)添加到 main.rs,但二进制未重编译 - 影响:
- Admin V2 行业配置页面空
- Tauri 账号编辑弹窗"授权行业"下拉框永久 loading
- 行业知识域/管家技能优先级不可用
- 代码验证:
industry/mod.rs路由定义正确,main.rs:363.merge()注册正确 - 修复: 重编译 SaaS 二进制
P1-07: 用量限额数据不一致
- 现象: Plan 定义
max_relay_requests_monthly=100,但 usage 对象返回max_relay_requests=2000 - API 证据:
GET /billing/plans → plan-free.limits.max_relay_requests_monthly = 100 GET /billing/subscription → usage.max_relay_requests = 2000 - UI 影响: Admin V2 计费管理页面 — 免费版卡片显示 "100 次/月",当前用量显示 "2,000"
- 影响: 用户和 Admin 看到矛盾数据,计费系统不可信
P1-08: 用量限制未执行
- 现象: admin 账户
input_tokens=3,386,978,是 free plan 限额 500,000 的 6.77 倍,无任何拦截 - 影响: 用户可无限使用超出计划限制的资源
- 修复方向: 在 relay 请求前检查 usage 是否超限
P2 MEDIUM
P2-09: 29% Relay 任务 token 计数为零
- 现象: 17 个已完成 relay 任务中 5 个 input_tokens=0, output_tokens=0
- 证据:
5b85b045... completed tokens=0/0 644134f4... completed tokens=0/0 25820499... completed tokens=0/0 a37669b0... completed tokens=0/0 539b26a8... completed tokens=0/0 - 修复方向: 检查 relay 完成后 token 统计逻辑,某些路径可能跳过了 token 累加
P2-10: Tauri 端 Token 统计为 0
- 现象: 详情面板"用量统计"显示"总 Token: 0",但 SaaS relay 有真实 token 使用记录 (3,386,978 input + 197,420 output)
- 影响: 桌面端用户无法看到自己的 token 消耗
- 修复方向: Tauri 端应从 SaaS API 获取 usage 数据而非本地累计
P2-14: Subscription 为 null
- 现象: admin 账号的
billing.subscription为 null,使用默认 free plan - 影响: 无法区分"主动订阅"和"默认计划"
P3 LOW
P3-19: Admin API 密钥页面路由指向 ModelServices 组件
- 现象: 侧边栏 "API 密钥" 按钮 (/api-keys) 加载了 ModelServices 组件,而非独立的 API 密钥管理页面
- 代码:
admin-v2/src/router/index.tsx:29懒加载ModelServices用于api-keys路径 - 可能是设计如此(Provider 管理 = Key 池管理),但页面标题与内容不匹配
P3-15: antd Modal destroyOnClose 废弃
- Admin V2 多个页面使用
destroyOnClose,antd 新版应使用destroyOnHidden
P3-16: onSearch React DOM 属性警告
- 知识库页面
Unknown event handler property onSearch
已验证正常的功能
SaaS 后端 API (27/30 正常)
| 模块 | 端点 | 状态 | 数据验证 |
|---|---|---|---|
| Auth | login/refresh/me/password/totp-setup | ✅ | JWT+rotation 正常,TOTP secret 生成正确 |
| Accounts | CRUD/搜索/状态切换 | ✅ | 30 个账号,分页正常 |
| Providers | CRUD | ✅ | 3 Provider (DeepSeek/Kimi/zhipu),Key 池正常 |
| Models | CRUD/列表 | ✅ | 3 模型 (deepseek-chat/GLM-4.7/kimi-for-coding) |
| Relay Chat | 流式+非流式 | ✅ | 核心链路正常,真实 LLM 响应 |
| Relay Tasks | 列表 | ✅ | 17 个真实任务 |
| Billing Plans | 列表 | ✅ | 3 计划,中文正确 |
| Billing Usage | 查询 | ✅ | 详细用量统计 |
| Roles | 列表 | ✅ | 3 角色,权限列表正确 |
| Agent Templates | 列表 | ✅ | 10 模板(含 4 行业) |
| Knowledge | CRUD/搜索 | ✅ | 6 分类/6 条目,搜索返回带分值结果 |
| Knowledge Analytics | overview | ✅ | 统计数据完整 |
| Config | items/analysis | ✅ | 62 配置项,8 分类 |
| Dashboard Stats | 聚合 | ✅ | 30 账号/3 Provider/3 模型 |
| Operation Logs | 列表 | ✅ | 2,047 条日志 |
| Provider Keys | Key 池 | ✅ | RPM/TPM/cooldown 追踪正常 |
| Prompts | 列表 | ✅ | 3 内置提示词 |
| Scheduler | 任务列表 | ✅ | 路径正确 (/api/v1/scheduler/tasks) |
Admin V2 管理后台 (14/16 正常)
| 页面 | 数据来源 | 交互验证 |
|---|---|---|
| 仪表盘 | ✅ API 实时数据 | 30 账号/3 Provider/3 模型/14 tokens 全部与 API 一致 |
| 计费管理 | ✅ Plans + Usage | 3 计划卡片正确,用量进度条准确 |
| 账号管理 | ✅ 30 账号 | 编辑弹窗/搜索/分页/状态切换全部正常 |
| 角色权限 | ✅ 3 角色 | 权限列表正确,模板 tab 为空(符合预期) |
| 模型服务 | ✅ 3 Provider | 展开 Provider 显示 Key 池和模型 |
| Agent 模板 | ✅ 10 模板 | 列表/筛选正常 |
| 知识库 | ✅ 6 分类/6 条目 | 5 个 tab 全部有数据 |
| 用量统计 | ✅ 30 用户统计 | 图表渲染正常 |
| 中转任务 | ✅ 9 任务 | 全部显示 completed |
| 操作日志 | ✅ 2,039 条 | 分页/筛选正常 |
| 系统配置 | ✅ 62 配置项 | 6 个 tab 分类清晰 |
| 提示词管理 | ✅ 3 提示词 | 列表正常 |
| 同步日志 | ✅ 空(符合预期) | 页面正常渲染 |
| 定时任务 | ✅ 空(符合预期) | 页面正常渲染 |
Tauri 桌面端 (6/8 正常)
| 功能 | 状态 | 验证结果 |
|---|---|---|
| Gateway 连接 | ✅ | saas-relay 模式,http://127.0.0.1:8080 |
| 模型选择 | ✅ | deepseek-chat 正确匹配 SaaS 白名单 |
| 聊天发送/接收 | ✅ | 发送"你好"→ 收到"你好!很高兴为你服务" |
| 对话历史 | ✅ | 7 个对话,114 条消息,时间戳正确 |
| 设置页面 | ✅ | 19 个设置页全部可访问,Gateway 状态正确 |
| 简洁/专业模式 | ✅ | 切换按钮正常,管家快捷操作可见 |
| 用量统计 | ❌ | 总 Token 显示 0(P2-10) |
| 行业下拉框 | ❌ | 编辑账号时"授权行业"永久 loading(P1-04) |
数据一致性交叉验证
| 验证项 | SaaS API | Admin V2 | Tauri | 一致? |
|---|---|---|---|---|
| 账号总数 | 30 | 30 | - | ✅ |
| Provider 数 | 3 | 3 | 3 | ✅ |
| 模型数 | 3 | 3 | 3 | ✅ |
| Relay 请求数 | 561 | 553 | - | ✅ (差 8 = 测试期间新增) |
| Operation Logs | 2,047 | 2,039 | - | ✅ (差 8 = 并发写入) |
| 当前模型 | deepseek-chat | - | deepseek-chat | ✅ |
| Plan max_relay | 100 | 100 | - | ✅ |
| Usage max_relay | 2,000 | 2,000 | - | ❌ 与 Plan 不一致 |
测试环境信息
| 项目 | 值 |
|---|---|
| SaaS 后端 | http://localhost:8080 (zclaw-saas.exe PID=10976, build 2026-04-11) |
| Admin V2 | http://localhost:5173 (Vite dev server) |
| Tauri Dev | http://localhost:1420 (saas-relay 模式) |
| PostgreSQL | localhost:5432/zclaw |
| Admin 账号 | admin / admin123 / super_admin |
| 截图位置 | tests/screenshots/admin-*.png |
修复优先级建议
- 立即: 重编译 SaaS 二进制 → 解决 P0-NEW-01 + P1-04
- 发布前: 修复 P1-07 (用量限额不一致) + P1-08 (用量未执行)
- 发布后: P2-09 (token 计数) + P2-10 (Tauri 统计) + P2-14 (subscription null)