🧪 批量上传功能测试指南
📋 测试前准备
1. 确保后端服务运行
# 检查后端服务状态
Invoke-WebRequest -Uri "http://localhost:8000/api/health" -UseBasicParsing | Select-Object -ExpandProperty Content
预期结果: {"status":"healthy","service":"mises-behavior-engine"}
如果后端未运行:
cd d:\Mises\mbe-desktop
.\scripts\start-backend.ps1
2. 准备测试文件
创建或准备以下测试文件:
test1.pdf- PDF 文件(如果有)test2.txt- 文本文件test3.md- Markdown 文件test4.pdf- 另一个 PDF 文件(可选)
注意: 文件应该放在容易访问的位置,比如桌面或文档文件夹。
🚀 启动应用
cd d:\Mises\mbe-desktop
npm run dev:electron
等待:
- ✅ Vite dev server 启动(
http://localhost:5173) - ✅ Electron 窗口自动打开
- ✅ 窗口标题显示 "MBE Desktop"
📝 测试步骤
测试 1: 单个文件上传(验证向后兼容)
目标: 确保单个文件上传仍然正常工作
步骤:
- 登录应用(如果未登录)
- 进入"知识库"页面
- 创建一个新的知识库(如果还没有)
- 点击知识库卡片上的上传按钮
- 只选择一个文件(例如
test1.pdf) - 点击"打开"
预期结果:
- ✅ 文件开始上传
- ✅ 显示"上传中..."状态
- ✅ 上传完成后,知识库状态更新
- ✅ 显示成功提示(右上角绿色提示框)
验证点:
- 文件成功上传
- 知识库状态变为 "processing" 或 "ready"
- 显示成功提示消息
测试 2: 批量上传(多个文件)
目标: 测试批量上传功能
步骤:
- 在知识库页面,选择一个知识库
- 点击知识库卡片上的上传按钮
- 按住 Ctrl 键(Windows)或 Cmd 键(Mac),选择多个文件:
test1.pdftest2.txttest3.md
- 点击"打开"
预期结果:
- ✅ 弹出"批量上传进度"模态框
- ✅ 显示所有选中的文件列表
- ✅ 每个文件显示状态(等待中/处理中/成功/失败)
- ✅ 显示统计信息(成功数/处理中数/失败数)
- ✅ 文件开始上传
验证点:
- 批量上传模态框正确显示
- 所有文件都出现在列表中
- 文件状态正确更新
- 统计信息正确显示
测试 3: 拖放多个文件
目标: 测试拖放批量上传
步骤:
- 打开文件资源管理器(Windows Explorer)
- 选择多个文件(
test1.pdf,test2.txt,test3.md) - 将文件拖放到知识库卡片上
- 释放鼠标
预期结果:
- ✅ 卡片高亮显示(蓝色边框)
- ✅ 弹出"批量上传进度"模态框
- ✅ 显示所有拖放的文件
- ✅ 文件开始上传
验证点:
- 拖放功能正常工作
- 多个文件都被识别
- 批量上传模态框正确显示
测试 4: 混合文件类型
目标: 测试不支持的文件类型过滤
步骤:
- 准备以下文件:
test1.pdf✅(支持)test2.txt✅(支持)test3.md✅(支持)test4.jpg❌(不支持)test5.docx❌(不支持)
- 选择所有文件进行上传
预期结果:
- ✅ 只上传支持的文件(PDF, TXT, MD)
- ✅ 不支持的文件被跳过(如果有提示)
- ✅ 批量上传模态框只显示支持的文件
验证点:
- 不支持的文件被正确过滤
- 只有支持的文件被上传
- 没有错误提示(因为自动过滤)
测试 5: 批量上传进度跟踪
目标: 验证上传进度显示
步骤:
- 选择多个大文件(如果可能)
- 开始批量上传
- 观察批量上传进度模态框
预期结果:
- ✅ 每个文件显示独立的状态
- ✅ 状态包括:等待中、处理中、队列中、成功、失败
- ✅ 统计信息实时更新
- ✅ 上传完成后显示最终统计
验证点:
- 进度显示准确
- 状态更新及时
- 统计信息正确
测试 6: 批量上传错误处理
目标: 测试错误情况处理
步骤:
- 选择一个不存在的知识库(如果可能)
- 或者上传一个损坏的文件
- 观察错误处理
预期结果:
- ✅ 错误文件显示"失败"状态
- ✅ 其他文件继续上传
- ✅ 显示错误消息(如果有)
- ✅ 统计信息正确更新(失败数增加)
验证点:
- 错误被正确捕获
- 错误信息清晰显示
- 其他文件不受影响
测试 7: 详情页批量上传
目标: 测试知识库详情页的批量上传
步骤:
- 点击知识库卡片上的"查看详情"按钮
- 在详情页面的上传区域
- 选择多个文件上传
预期结果:
- ✅ 批量上传功能正常工作
- ✅ 显示批量上传进度模态框
- ✅ 上传完成后刷新详情页
验证点:
- 详情页支持批量上传
- 进度显示正常
- 页面刷新正常
🔍 调试技巧
打开开发者工具
在 Electron 窗口中按 F12 打开开发者工具
查看网络请求
- 打开开发者工具
- 切换到 "Network" 标签页
- 开始上传文件
- 查看请求:
- 单个文件:
POST /admin/knowledge/upload/{kb_id} - 批量上传:
POST /admin/knowledge/upload-batch/{kb_id}
- 单个文件:
查看控制台日志
在开发者工具的 "Console" 标签页查看:
- 上传进度日志
- 错误信息
- API 响应
常见问题排查
问题 1: 批量上传模态框不显示
检查:
- 是否选择了多个文件?
- 控制台是否有错误?
-
batchUploading状态是否正确设置?
问题 2: 文件上传失败
检查:
- 后端服务是否运行?
- 文件格式是否支持(PDF, TXT, MD)?
- 网络请求是否成功?
- 查看 Network 标签页的响应
问题 3: 进度不更新
检查:
- API 响应是否正确?
-
progress状态是否正确更新? - 组件是否正确渲染?
✅ 测试检查清单
功能测试
- 单个文件上传正常工作
- 批量上传功能正常
- 拖放多个文件正常
- 文件类型过滤正常
- 进度显示正常
- 错误处理正常
- 详情页批量上传正常
UI/UX 测试
- 批量上传模态框显示正确
- 文件列表显示完整
- 状态图标正确显示
- 进度条正常显示
- 统计信息准确
- 成功提示正确显示
性能测试
- 多个文件同时上传不卡顿
- 进度更新及时
- 内存使用正常
📊 预期结果总结
成功场景
单个文件上传:
- ✅ 使用单文件上传 API
- ✅ 显示单文件上传状态
- ✅ 上传完成后显示成功提示
批量文件上传:
- ✅ 使用批量上传 API
- ✅ 显示批量上传进度模态框
- ✅ 每个文件独立显示状态
- ✅ 显示统计信息
- ✅ 上传完成后显示总结
错误场景
不支持的文件类型:
- ✅ 自动过滤
- ✅ 不显示在列表中
- ✅ 不影响其他文件上传
上传失败:
- ✅ 显示错误状态
- ✅ 显示错误消息
- ✅ 其他文件继续上传
🎯 测试完成标准
所有测试通过后,应该满足:
- ✅ 功能完整: 所有功能正常工作
- ✅ 用户体验良好: 界面清晰,反馈及时
- ✅ 错误处理完善: 错误情况被正确处理
- ✅ 性能稳定: 多个文件上传不卡顿
最后更新: 2026-02-08