Files
n8n-web/Test/代码功能性能测试报告答复.md
2025-09-11 14:15:26 +08:00

52 lines
2.4 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.

# 代码功能性能测试报告答复
## 修复与优化清单(对应《代码功能性能测试报告.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、后端敏感配置