🧪 批量上传功能测试指南

📋 测试前准备

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: 单个文件上传(验证向后兼容)

目标: 确保单个文件上传仍然正常工作

步骤:

  1. 登录应用(如果未登录)
  2. 进入"知识库"页面
  3. 创建一个新的知识库(如果还没有)
  4. 点击知识库卡片上的上传按钮
  5. 只选择一个文件(例如 test1.pdf
  6. 点击"打开"

预期结果:

  • ✅ 文件开始上传
  • ✅ 显示"上传中..."状态
  • ✅ 上传完成后,知识库状态更新
  • ✅ 显示成功提示(右上角绿色提示框)

验证点:

  • 文件成功上传
  • 知识库状态变为 "processing" 或 "ready"
  • 显示成功提示消息

测试 2: 批量上传(多个文件)

目标: 测试批量上传功能

步骤:

  1. 在知识库页面,选择一个知识库
  2. 点击知识库卡片上的上传按钮
  3. 按住 Ctrl 键(Windows)或 Cmd 键(Mac),选择多个文件:
    • test1.pdf
    • test2.txt
    • test3.md
  4. 点击"打开"

预期结果:

  • ✅ 弹出"批量上传进度"模态框
  • ✅ 显示所有选中的文件列表
  • ✅ 每个文件显示状态(等待中/处理中/成功/失败)
  • ✅ 显示统计信息(成功数/处理中数/失败数)
  • ✅ 文件开始上传

验证点:

  • 批量上传模态框正确显示
  • 所有文件都出现在列表中
  • 文件状态正确更新
  • 统计信息正确显示

测试 3: 拖放多个文件

目标: 测试拖放批量上传

步骤:

  1. 打开文件资源管理器(Windows Explorer)
  2. 选择多个文件(test1.pdf, test2.txt, test3.md
  3. 将文件拖放到知识库卡片上
  4. 释放鼠标

预期结果:

  • ✅ 卡片高亮显示(蓝色边框)
  • ✅ 弹出"批量上传进度"模态框
  • ✅ 显示所有拖放的文件
  • ✅ 文件开始上传

验证点:

  • 拖放功能正常工作
  • 多个文件都被识别
  • 批量上传模态框正确显示

测试 4: 混合文件类型

目标: 测试不支持的文件类型过滤

步骤:

  1. 准备以下文件:
    • test1.pdf ✅(支持)
    • test2.txt ✅(支持)
    • test3.md ✅(支持)
    • test4.jpg ❌(不支持)
    • test5.docx ❌(不支持)
  2. 选择所有文件进行上传

预期结果:

  • ✅ 只上传支持的文件(PDF, TXT, MD)
  • ✅ 不支持的文件被跳过(如果有提示)
  • ✅ 批量上传模态框只显示支持的文件

验证点:

  • 不支持的文件被正确过滤
  • 只有支持的文件被上传
  • 没有错误提示(因为自动过滤)

测试 5: 批量上传进度跟踪

目标: 验证上传进度显示

步骤:

  1. 选择多个大文件(如果可能)
  2. 开始批量上传
  3. 观察批量上传进度模态框

预期结果:

  • ✅ 每个文件显示独立的状态
  • ✅ 状态包括:等待中、处理中、队列中、成功、失败
  • ✅ 统计信息实时更新
  • ✅ 上传完成后显示最终统计

验证点:

  • 进度显示准确
  • 状态更新及时
  • 统计信息正确

测试 6: 批量上传错误处理

目标: 测试错误情况处理

步骤:

  1. 选择一个不存在的知识库(如果可能)
  2. 或者上传一个损坏的文件
  3. 观察错误处理

预期结果:

  • ✅ 错误文件显示"失败"状态
  • ✅ 其他文件继续上传
  • ✅ 显示错误消息(如果有)
  • ✅ 统计信息正确更新(失败数增加)

验证点:

  • 错误被正确捕获
  • 错误信息清晰显示
  • 其他文件不受影响

测试 7: 详情页批量上传

目标: 测试知识库详情页的批量上传

步骤:

  1. 点击知识库卡片上的"查看详情"按钮
  2. 在详情页面的上传区域
  3. 选择多个文件上传

预期结果:

  • ✅ 批量上传功能正常工作
  • ✅ 显示批量上传进度模态框
  • ✅ 上传完成后刷新详情页

验证点:

  • 详情页支持批量上传
  • 进度显示正常
  • 页面刷新正常

🔍 调试技巧

打开开发者工具

在 Electron 窗口中按 F12 打开开发者工具

查看网络请求

  1. 打开开发者工具
  2. 切换到 "Network" 标签页
  3. 开始上传文件
  4. 查看请求:
    • 单个文件: 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 测试

  • 批量上传模态框显示正确
  • 文件列表显示完整
  • 状态图标正确显示
  • 进度条正常显示
  • 统计信息准确
  • 成功提示正确显示

性能测试

  • 多个文件同时上传不卡顿
  • 进度更新及时
  • 内存使用正常

📊 预期结果总结

成功场景

  1. 单个文件上传:

    • ✅ 使用单文件上传 API
    • ✅ 显示单文件上传状态
    • ✅ 上传完成后显示成功提示
  2. 批量文件上传:

    • ✅ 使用批量上传 API
    • ✅ 显示批量上传进度模态框
    • ✅ 每个文件独立显示状态
    • ✅ 显示统计信息
    • ✅ 上传完成后显示总结

错误场景

  1. 不支持的文件类型:

    • ✅ 自动过滤
    • ✅ 不显示在列表中
    • ✅ 不影响其他文件上传
  2. 上传失败:

    • ✅ 显示错误状态
    • ✅ 显示错误消息
    • ✅ 其他文件继续上传

🎯 测试完成标准

所有测试通过后,应该满足:

  1. 功能完整: 所有功能正常工作
  2. 用户体验良好: 界面清晰,反馈及时
  3. 错误处理完善: 错误情况被正确处理
  4. 性能稳定: 多个文件上传不卡顿

最后更新: 2026-02-08