TraceStudio-dev/docs/web1.0/TESTING_PHASE2.md

314 lines
6.6 KiB
Markdown
Raw Normal View History

2026-01-07 19:34:45 +08:00
# 🧪 第二阶段功能验证指南
## 🚀 快速启动
### 1. 启动后端服务
```powershell
cd server
python main.py
```
应该看到:
```
🚀 启动 TraceStudio 服务器...
📡 访问 http://127.0.0.1:8000/docs 查看 API 文档
INFO: Started server process
INFO: Uvicorn running on http://127.0.0.1:8000
```
### 2. 启动前端服务
新开一个终端:
```powershell
cd web
npm run dev
```
应该看到:
```
VITE v7.x.x ready in xxx ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
```
### 3. 打开浏览器
访问 http://localhost:5173
---
## ✅ 功能验证清单
### 测试 1: 算子动态加载 ✅
**步骤:**
1. 打开浏览器开发者工具F12
2. 切换到 Console 标签
3. 刷新页面
**期望结果:**
- ✅ Console 显示:`✅ 成功加载 8 个算子`
- ✅ 左侧显示 8 种算子(分类折叠)
- ✅ 搜索 "CSV" 能过滤显示相关算子
**截图位置:**
- 左侧算子面板
- Console 日志
---
### 测试 2: 节点预览功能 ✅
**步骤:**
1. 从左侧拖拽 "📂 CSV 数据加载器" 到画布
2. 点击画布中的节点(节点边框高亮)
3. 右侧属性面板应显示节点信息
4. 点击 "▶ 运行预览" 按钮
**期望结果:**
- ✅ 按钮变为 "⏳ 运行中..."(禁用状态)
- ✅ 1 秒后显示数据表格
- ✅ 表格头部:`timestamp | frame_time | cpu_usage | memory_mb`
- ✅ 表格内容5 行模拟数据
- ✅ 右上角显示:`5 列 × 5 行`
- ✅ Console 显示:`✅ 预览成功: {...}`
**截图位置:**
- 右侧 Inspector 面板
- 预览表格
- Console 日志
---
### 测试 3: 执行状态反馈 ✅
**步骤:**
1. 确保画布有至少 1 个节点
2. 点击 Header 的 "▶ 运行" 按钮
**期望结果(执行开始):**
- ✅ 按钮文字变为 "⏳ 执行中..."
- ✅ 按钮背景变为橙色渐变
- ✅ 状态指示灯变为橙色(呼吸动画)
- ✅ 状态文字变为 "执行中"
- ✅ 所有连线开始橙色流动动画
- ✅ 连线宽度增加(更明显)
- ✅ 按钮禁用,无法再次点击
**期望结果(执行完成,约 1 秒后):**
- ✅ 按钮恢复蓝色渐变
- ✅ 按钮文字变为 "▶ 运行"
- ✅ 状态灯变为绿色
- ✅ 状态文字变为 "完成"
- ✅ 连线停止动画,变为绿色
- ✅ 按钮下方显示悬浮提示:`✅ 成功执行了包含 X 个节点和 Y 条连接的计算图`
- ✅ Console 显示:`✅ 执行成功: {...}`
**期望结果3 秒后):**
- ✅ 悬浮提示自动消失
- ✅ 状态灯变为灰色
- ✅ 状态文字变为 "空闲"
**截图位置:**
- Header 状态指示区
- Run 按钮及提示
- 画布连线动画
- Console 日志
---
### 测试 4: 错误处理 ✅
**步骤:**
1. 关闭后端服务Ctrl+C
2. 刷新前端页面
**期望结果:**
- ✅ 左侧显示红色错误提示框
- ✅ 提示内容:`⚠️ 连接失败` + 错误信息
- ✅ 提示底部:`请确保后端服务已启动http://127.0.0.1:8000`
- ✅ Console 显示:`❌ 无法加载算子列表: ...`
**步骤(执行错误):**
1. 重启后端服务
2. 点击 Run 按钮
3. 后端返回错误(模拟场景)
**期望结果:**
- ✅ 状态灯变为红色
- ✅ 状态文字变为 "失败"
- ✅ 显示错误提示(红色)
- ✅ Console 显示:`❌ 执行失败: ...`
**截图位置:**
- 左侧错误提示
- Header 状态灯(红色)
- 错误提示消息
---
### 测试 5: 搜索过滤 ✅
**步骤:**
1. 在左侧搜索框输入 "CSV"
2. 输入 "Filter"
3. 输入 "不存在的算子"
4. 清空搜索框
**期望结果:**
- ✅ 输入 "CSV":只显示 CSVLoader 相关
- ✅ 输入 "Filter":显示 FilterRows 和 TimeRangeFilter
- ✅ 输入不存在的:显示 `未找到包含 "xxx" 的算子`
- ✅ 清空:恢复显示所有算子
- ✅ 搜索框右侧显示 "×" 清除按钮
**截图位置:**
- 搜索框
- 过滤结果
---
### 测试 6: 响应式布局 ✅
**步骤:**
1. 点击 Header 的 📦 按钮(隐藏左侧面板)
2. 点击 ⚙️ 按钮(隐藏右侧面板)
3. 再次点击恢复
**期望结果:**
- ✅ 隐藏左侧:画布向左扩展,平滑动画
- ✅ 隐藏右侧:画布向右扩展,平滑动画
- ✅ 按钮状态高亮(蓝色边框)
- ✅ 恢复后画布自动调整
**截图位置:**
- 隐藏前
- 隐藏后
- 恢复后
---
### 测试 7: 表格渲染细节 ✅
**步骤:**
1. 拖拽 "⚙️ 行过滤器" 到画布
2. 点击节点
3. 点击 "运行预览"
**期望结果:**
- ✅ 表格头部背景色为蓝色渐变
- ✅ 列名文字为蓝色
- ✅ 数值显示两位小数16.70
- ✅ 行与行之间有分隔线
- ✅ 表格可滚动(如果数据多)
- ✅ 表格字体为 monospace
**截图位置:**
- 预览表格
---
## 🎨 视觉验证要点
### 颜色主题一致性
- **主色调**:深蓝黑(#0b1220
- **强调色**:蓝色渐变(#3b82f6 → #2563eb
- **成功色**:绿色(#22c55e
- **警告色**:橙色(#f59e0b
- **错误色**:红色(#ef4444
### 动画流畅性
- **过渡动画**0.15-0.3s ease
- **呼吸动画**2s ease-in-out infinite
- **滑动动画**0.3s ease
- **连线流动**React Flow 默认速度
### 间距一致性
- **小间距**4-8px
- **中间距**12-16px
- **大间距**20-24px
---
## 📊 性能检查
### 加载时间
- ✅ 页面首次加载:< 2s
- ✅ 算子列表加载:< 500ms
- ✅ 预览请求响应:< 1s
- ✅ 执行请求响应:< 1s
### 内存占用
- ✅ 空画布:< 100MB
- ✅ 10 个节点:< 150MB
- ✅ 50 个节点:< 300MB
### 动画帧率
- ✅ 连线动画:> 30 FPS
- ✅ 状态灯呼吸:> 60 FPS
---
## 🐛 常见问题
### Q: 左侧显示"连接失败"
**A:** 检查后端是否启动
```powershell
curl http://127.0.0.1:8000
# 应返回 JSON 数据
```
### Q: 点击预览无反应
**A:** 打开 Console 查看错误
- 如果是网络错误:检查后端
- 如果是 CORS 错误:检查后端 CORS 配置
### Q: Run 按钮一直禁用
**A:** 确保画布有至少 1 个节点
### Q: 连线动画不流畅
**A:** 减少节点数量或关闭开发者工具
---
## 📸 截图清单
建议截图记录以下场景:
1. ✅ 算子列表加载成功
2. ✅ 预览表格显示
3. ✅ 执行中状态(橙色)
4. ✅ 执行完成状态(绿色)
5. ✅ 错误提示(红色)
6. ✅ 搜索过滤结果
7. ✅ 响应式布局(隐藏侧边栏)
---
## 🎯 下一步
完成所有测试后:
1. ✅ 记录任何发现的问题
2. ✅ 提交测试报告
3. ✅ 开始第三阶段开发
---
**验证状态**: ⏳ 待验证
**预计时间**: 15-20 分钟
**测试环境**: Windows 10/11, Chrome/Edge