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

544 lines
11 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.
# Phase 3 批处理模式 - 最终收尾与测试指南
**完成时间**2025-10-13
**状态**:✅ 开发100%完成,等待测试验证
---
## ✅ 已完成检查清单
### 开发完成度100%
- [x] **后端开发**100%
- [x] 数据库Schema3个表
- [x] 数据库迁移
- [x] 预设模板临床研究8字段
- [x] JSON解析工具
- [x] 批处理服务p-queue固定3并发
- [x] API控制器5个端点
- [x] 路由注册
- [x] p-queue依赖安装
- [x] **前端开发**100%
- [x] API封装batchApi.ts
- [x] 状态管理useBatchTask.ts
- [x] UI组件7个组件14个文件
- [x] 集成到ChatPage
- [x] 更新ModeSelector
- [x] xlsx依赖安装 ✅
- [x] **类型定义**100%
- [x] KnowledgeBaseMode包含'batch' ✅
- [x] 批处理相关类型定义完整
- [x] **基础测试**100%
- [x] 后端API测试模板API验证通过
---
## 🧪 端到端测试指南
### 前提条件
**确保服务已启动**
1. ✅ Backend服务运行中http://localhost:3001
2. ⏳ Frontend服务需要启动http://localhost:3000
3. ✅ PostgreSQL数据库运行中
4. ⏳ 知识库中有测试文献至少3篇已提取extractedText
---
### 测试步骤
#### **测试1预设模板测试推荐**
**操作流程**
1. **启动Frontend**
```bash
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美观、响应流畅
- [ ] 错误提示清晰
- [ ] 无明显卡顿
- [ ] 边界测试通过
---
## 🚀 启动测试
### 命令
```bash
# Backend应该已经运行中
cd D:\MyCursor\AIclinicalresearch\backend
npm run dev
# Frontend需要启动
cd D:\MyCursor\AIclinicalresearch\frontend
npm run dev
```
### 访问地址
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
---
## 📝 测试记录模板
### 测试执行记录
**测试时间**_____________
**测试人员**_____________
#### 预设模板测试
| 检查项 | 状态 | 备注 |
|--------|------|------|
| 模板选择 | ⬜ 通过 / ⬜ 失败 | |
| 文献选择 | ⬜ 通过 / ⬜ 失败 | |
| 任务执行 | ⬜ 通过 / ⬜ 失败 | |
| 进度显示 | ⬜ 通过 / ⬜ 失败 | |
| 结果表格 | ⬜ 通过 / ⬜ 失败 | |
| Excel导出 | ⬜ 通过 / ⬜ 失败 | |
#### 自定义模板测试
| 检查项 | 状态 | 备注 |
|--------|------|------|
| 提示词输入 | ⬜ 通过 / ⬜ 失败 | |
| 任务执行 | ⬜ 通过 / ⬜ 失败 | |
| 文本块显示 | ⬜ 通过 / ⬜ 失败 | |
| Excel导出 | ⬜ 通过 / ⬜ 失败 | |
#### 边界测试
| 检查项 | 状态 | 备注 |
|--------|------|------|
| <3篇提示 | ⬜ 通过 / ⬜ 失败 | |
| >50篇提示 | ⬜ 通过 / ⬜ 失败 | |
| 空提示词拦截 | ⬜ 通过 / ⬜ 失败 | |
| 失败重试 | ⬜ 通过 / ⬜ 失败 | |
### 发现的问题
(记录测试中发现的任何问题)
1.
2.
3.
---
## 🎉 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测试**
```bash
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
**状态**:✅ 准备就绪,等待测试
---
**祝测试顺利!** 🚀