Files
zclaw_openfang/docs/INTEGRATION_TEST_REPORT_20260414.md
iven 70229119be
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
docs: 三端联调测试报告 2026-04-14 — 30+ API/16 Admin/8 Tauri 全量测试
2026-04-14 17:48:31 +08:00

225 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 显示 0P2-10 |
| 行业下拉框 | ❌ | 编辑账号时"授权行业"永久 loadingP1-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` |
---
## 修复优先级建议
1. **立即**: 重编译 SaaS 二进制 → 解决 P0-NEW-01 + P1-04
2. **发布前**: 修复 P1-07 (用量限额不一致) + P1-08 (用量未执行)
3. **发布后**: P2-09 (token 计数) + P2-10 (Tauri 统计) + P2-14 (subscription null)