Files
AIclinicalresearch/Phase3-最终收尾-测试指南.md
HaHafeng 855d142fec chore: add remaining test docs, scripts and temp files
- Add Git commit preparation checklist
- Add Phase testing guides and issue tracking
- Add utility scripts (env setup, test data initialization)
- Add temp migration SQL files (for reference)
- Update startup scripts and README
- Remove obsolete scripts
2025-11-16 15:44:55 +08:00

11 KiB
Raw Blame History

Phase 3 批处理模式 - 最终收尾与测试指南

完成时间2025-10-13
状态 开发100%完成,等待测试验证


已完成检查清单

开发完成度100%

  • 后端开发100%

    • 数据库Schema3个表
    • 数据库迁移
    • 预设模板临床研究8字段
    • JSON解析工具
    • 批处理服务p-queue固定3并发
    • API控制器5个端点
    • 路由注册
    • p-queue依赖安装
  • 前端开发100%

    • API封装batchApi.ts
    • 状态管理useBatchTask.ts
    • UI组件7个组件14个文件
    • 集成到ChatPage
    • 更新ModeSelector
    • xlsx依赖安装
  • 类型定义100%

    • KnowledgeBaseMode包含'batch'
    • 批处理相关类型定义完整
  • 基础测试100%

    • 后端API测试模板API验证通过

🧪 端到端测试指南

前提条件

确保服务已启动

  1. Backend服务运行中http://localhost:3001
  2. Frontend服务需要启动http://localhost:3000
  3. PostgreSQL数据库运行中
  4. 知识库中有测试文献至少3篇已提取extractedText

测试步骤

测试1预设模板测试推荐

操作流程

  1. 启动Frontend

    cd D:\MyCursor\AIclinicalresearch\frontend
    npm run dev
    
  2. 进入批处理模式

    • 打开浏览器:http://localhost:3000
    • 智能问答 → 知识库模式
    • 选择知识库
    • 点击"📦 批处理"按钮
  3. 定义任务第1步

    • 默认选中"● 临床研究信息提取"
    • 查看8个提取字段预览
    • 确认字段正确
  4. 选择文献第2步

    • 滚动查看文献列表
    • 勾选3-10篇文献测试建议5-7篇
    • 查看"已选择X/50篇"统计
    • 查看预计处理时间
  5. 开始批处理第3步

    • 点击"🚀 开始批处理"按钮
    • 等待任务开始
  6. 观察进度

    • 查看进度条(百分比)
    • 查看统计卡片(成功/失败/处理中/等待)
    • 查看时间信息(已用时、平均速度)
    • 等待任务完成约5-10分钟
  7. 查看结果

    • 任务完成后自动切换到结果页
    • 查看8列表格
    • 检查每列数据是否正确
    • 查看牛津评级标签颜色
  8. 导出Excel

    • 点击"📥 导出Excel"按钮
    • 文件自动下载
    • 打开文件验证:
      • Sheet1提取结果8列
      • Sheet2任务信息

预期结果

  • UI流程流畅
  • 进度实时更新
  • 结果表格正确8列
  • Excel文件格式正确
  • 数据提取准确

测试2自定义模板测试

操作流程

  1. 选择自定义模板

    • 点击"○ 自定义任务"单选按钮
  2. 输入自定义提示词

    请总结这篇文献的研究方法、主要发现和局限性用3-5段话描述。
    
  3. 选择文献

    • 选择3-5篇文献测试用较少文献
  4. 执行任务

    • 点击"🚀 开始批处理"
    • 等待完成
  5. 查看结果

    • 结果表格应为3列序号、文献名、提取结果
    • 文本块显示AI的回答
    • 点击"查看完整内容"链接
  6. 导出Excel

    • 验证3列格式

预期结果

  • 文本块完整显示
  • 格式为3列不是8列
  • Excel导出正确

测试3边界测试

场景1文献数量不足

  • 只选择1-2篇文献
  • 点击"开始批处理"
  • 预期:提示"请至少选择3篇文献"

场景2文献数量过多

  • 选择51篇或更多
  • 预期:提示"最多只能选择50篇文献"

场景3自定义模板空提示词

  • 选择"自定义任务"
  • 不输入提示词(留空)
  • 选择文献后点击开始
  • 预期:提示"请输入自定义提示词"

场景4失败重试

  • 如果有文档处理失败
  • 点击"重试失败项"按钮
  • 预期:重新处理失败的文档

🔍 检查要点

Frontend控制台

应该看到

  • 组件正常渲染
  • API调用成功
  • 进度更新日志

不应该看到

  • TypeScript类型错误
  • 组件渲染错误
  • API调用失败404/500

Backend控制台

应该看到

📦 [BatchController] 收到批处理请求
✅ [BatchController] 创建任务: <task-id>
📦 [BatchService] 开始执行批处理任务
✅ [BatchService] 使用已存在的任务: <task-id>
🔄 [BatchService] 处理文档 1/10: <doc-id>
✅ [BatchService] 文档处理成功: <filename> (2300ms)
...
🎉 [BatchService] 批处理任务完成

不应该看到

  • 数据库错误
  • LLM API错误除非真的失败
  • JSON解析错误除非AI输出异常

📋 功能验收清单

核心功能

  • 模板选择:预设/自定义切换正常
  • 字段预览预设模板显示8个字段
  • 文献选择3-50篇限制生效
  • 批量操作:全选/清空/反选正常
  • 搜索过滤:文献搜索正常
  • 开始执行:任务正常启动
  • 进度显示:进度条和统计实时更新
  • 结果切换:执行完成后自动显示结果
  • 表格展示预设8列/自定义3列正确
  • Excel导出:文件下载并格式正确
  • 失败重试:重试按钮正常工作
  • 新建任务:重置状态正常

用户体验

  • UI布局清晰三栏
  • 操作流程直观
  • 提示信息友好
  • 错误处理完善
  • 响应速度快
  • 无明显bug

🐛 可能遇到的问题

问题1Frontend启动报类型错误

原因:某些导入路径或类型不匹配

解决

  • 检查控制台错误信息
  • 调整导入路径或类型定义
  • 重新启动Frontend

问题2批处理模式不显示

原因:路由或条件判断问题

检查

  • 是否选择了知识库
  • 是否点击了"批处理"按钮
  • ChatPage.tsx中的条件判断

问题3执行任务后无进度

原因API调用失败或轮询问题

检查

  • Backend控制台是否有错误
  • Frontend控制台Network标签
  • task_id是否正确返回

问题4结果表格为空

原因JSON解析失败或数据格式问题

检查

  • Backend日志中的JSON解析结果
  • 原始AI输出raw_output字段
  • 是否有extractedText

问题5Excel导出失败

原因xlsx库未正确导入或数据格式问题

解决

  • 确认xlsx已安装已完成)
  • 检查浏览器控制台错误
  • 验证results数据结构

📊 测试数据建议

理想测试场景

知识库:临床研究文献库

文献要求

  • 至少5-10篇临床研究文献
  • 已上传并提取extractedText
  • 包含完整的研究信息(目的、设计、结果等)

文献类型

  • 建议RCT研究容易提取PICO
  • 样本量信息明确
  • 结果数据完整

🎯 验收标准

必须通过(核心功能)

预设模板流程

  1. 选择临床研究信息提取模板
  2. 选择5-10篇文献
  3. 执行任务,进度正常显示
  4. 结果显示为8列表格
  5. 数据提取基本准确
  6. Excel导出成功双Sheet

自定义模板流程

  1. 选择自定义任务
  2. 输入提示词
  3. 执行任务
  4. 结果显示为3列文本块
  5. Excel导出成功

建议通过(用户体验)

  • UI美观、响应流畅
  • 错误提示清晰
  • 无明显卡顿
  • 边界测试通过

🚀 启动测试

命令

# Backend应该已经运行中
cd D:\MyCursor\AIclinicalresearch\backend
npm run dev

# Frontend需要启动
cd D:\MyCursor\AIclinicalresearch\frontend
npm run dev

访问地址


📝 测试记录模板

测试执行记录

测试时间_____________
测试人员_____________

预设模板测试

检查项 状态 备注
模板选择 通过 / 失败
文献选择 通过 / 失败
任务执行 通过 / 失败
进度显示 通过 / 失败
结果表格 通过 / 失败
Excel导出 通过 / 失败

自定义模板测试

检查项 状态 备注
提示词输入 通过 / 失败
任务执行 通过 / 失败
文本块显示 通过 / 失败
Excel导出 通过 / 失败

边界测试

检查项 状态 备注
<3篇提示 通过 / 失败
>50篇提示 通过 / 失败
空提示词拦截 通过 / 失败
失败重试 通过 / 失败

发现的问题

(记录测试中发现的任何问题)


🎉 Phase 3 开发总结

开发成果

代码统计

  • 后端:~1,700行6个新文件 + 2个修改
  • 前端:~2,300行14个新文件 + 2个修改
  • 总计:~4,000行代码

开发时间

  • 设计1小时
  • 后端2小时
  • 前端4小时
  • 测试:待验证
  • 总计:~8小时1个工作日

技术亮点

  1. 双模板系统

    • 预设模板8字段结构化
    • 自定义模板:文本块灵活
  2. 并发控制

    • p-queue固定3并发
    • Promise.allSettled容错
  3. 容错JSON解析

    • 支持多种AI输出格式
    • 自动填充缺失字段
  4. 完整Excel导出

    • 双Sheet设计
    • 数据可追溯
  5. 三栏布局

    • 流程清晰
    • 步骤引导

核心价值

效率提升

  • 手动处理10篇 × 10分钟 = 100分钟
  • 批处理10篇 × 20秒 = ~7分钟
  • 提升约14倍 🚀

适用场景

  • 系统性文献综述
  • 批量信息提取
  • 多文献对比研究
  • 结构化数据归档

📄 相关文档

设计与开发

  • docs/05-每日进度/Phase3-批处理模式-完整设计.md - 完整设计方案
  • docs/05-每日进度/Phase3-完成总结.md - 完成报告
  • Phase3-Day1-后端完成总结.md - 后端详情
  • Phase3-快速参考.md - 快速参考
  • docs/04-开发计划/开发里程碑.md - 整体进度

测试工具

  • backend/test-batch-api.js - 后端API测试脚本

🎯 下一步

立即执行(必需)

  1. 启动Frontend测试

    cd frontend
    npm run dev
    
  2. 端到端测试15-30分钟

    • 预设模板测试
    • 自定义模板测试
    • 边界测试
  3. 问题修复(如有)

    • 记录问题
    • 修复bug
    • 重新测试
  4. 验收决策

    • 通过 → Phase 3完成 🎉
    • 有问题 → 继续修复

可选优化Phase 3.1

  • WebSocket进度推送替代HTTP轮询
  • 任务历史记录
  • 更多预设模板
  • 结果可视化
  • 智能文献选择

完成标志

Phase 3批处理模式验收通过标准

  1. 能进入批处理模式
  2. 能选择模板和文献
  3. 能执行任务3-50篇
  4. 进度显示正常
  5. 结果表格正确预设8列/自定义3列
  6. Excel导出成功
  7. 无阻塞性bug

如果以上全部通过 → Phase 3 正式完成! 🎉


测试指南版本1.0
创建时间2025-10-13
状态 准备就绪,等待测试


祝测试顺利! 🚀