Files
n8n-web/Test/代码功能性能测试报告答复.md

52 lines
2.4 KiB
Markdown
Raw Normal View History

2025-09-11 14:15:26 +08:00
# 代码功能性能测试报告答复
## 修复与优化清单(对应《代码功能性能测试报告.md》
### 一、严重问题修复 🔴
1) 下载函数重复定义 → 已抽取公共工具
- 新增:`src/utils/download.js`
- 提供:`downloadBlob``downloadFile``getFilenameFromContentDisposition``saveBlobResponse`
- 改造:`src/api/services.js` 全量改用公共工具,移除重复函数
2) 会议纪要 API 错误处理不一致 → 已重写
- 位置:`src/api/services.js``meetingMinutesAPI.generateMinutes`
- 逻辑:
- 优先以 `responseType: 'blob'` 请求并保存;
- 捕获后仅做一次 JSON 回退,若返回 `fileUrl` 则下载;
- 双重失败则向上抛出,避免循环与沉默失败。
### 二、中等问题修复 🟡
1) 表单输入校验
- `src/views/KnowledgeBase.vue`:新增 `validateForm()`,要求“主题、详细内容”非空。
- `src/views/MeetingMinutes.vue`:新增最小校验,至少有一项文本不为空。
2) 文件上传限制
- `src/views/InvoiceExtractor.vue`新增类型与大小限制PDF/图片≤10MB`onChange` 中过滤,警告提示。
3) 环境变量访问方式
- `env.config.js`:改为 `import.meta.env?.VITE_*`,避免对 `import.meta` 的可选链访问。
### 三、轻微问题优化 🟢
1) 支持动态文件名
- 下载工具支持从 `Content-Disposition` 解析文件名,若未提供则回退默认名:`saveBlobResponse()`
## 回归测试结论
- 构建:容器内 `npm install && npm run dev` 正常Vite 监听 `0.0.0.0:3000`
- 基本功能:
- 路由切换正常;
- 知识库提交校验生效;
- 会议纪要至少一项校验生效;
- 发票提取仅接受 PDF / 图片且 ≤10MB
- 竞品调研下载流程正常(需后端配合)。
- 下载:若响应为 blob并且提供 `Content-Disposition`,可自动使用服务端文件名;否则使用回退名。
- 错误处理:会议纪要下载流程在 blob 失败时做一次 JSON 回退,不再二次递归或死循环。
## 影响面
- 统一了下载行为,降低重复代码。
- 提高了用户输入、上传的安全性与后端容错性。
## 后续建议(与测试报告一致)
- 引入公共错误提示封装与请求防抖;
- 增加单元测试download 工具、表单校验、API 异常分支);
- 完善安全策略XSS 过滤、CORS、后端敏感配置