test: 完善单元测试覆盖率并优化统一异步架构

- 添加 AppController 测试用例,测试回调接口的错误处理
- 新增控制器、服务层、平台服务等全面的单元测试
- 优化增强模板控制器的错误处理和审核完成事件处理
- 添加数据库迁移脚本支持统一异步架构升级
- 完善 TypeScript 配置,添加 jest 类型支持
- 修复端到端测试,确保 API 响应格式正确性
- 所有测试通过 (109 个测试用例),覆盖率达到要求
This commit is contained in:
imeepos
2025-09-05 17:05:08 +08:00
parent 4cb6b63948
commit e36cdfc38d
20 changed files with 2607 additions and 48 deletions

262
test/README.md Normal file
View File

@@ -0,0 +1,262 @@
# 模板执行API测试文档
## 🎯 测试概述
本测试套件用于验证原有API和新的统一异步架构API的功能和性能。测试基于您提供的具体参数
- **图片URL**: `https://cdn.roasmax.cn/upload/676d85ae7c6347f49700631c84a13051.jpg`
- **模板代码**: `photo_restore_v1`
- **认证令牌**: `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...`
## 📁 测试文件说明
### 1. `integration-test.js` - 完整集成测试
**用途**: 全面的自动化测试,包含性能对比和错误场景测试
**运行方式**:
```bash
cd test
node integration-test.js
```
**特性**:
- ✅ 自动测试原有API和异步API
- ✅ 性能对比分析
- ✅ 状态轮询验证
- ✅ 错误场景测试
- ✅ 详细的测试报告
### 2. `quick-test.js` - 快速测试
**用途**: 简化版本快速验证API基本功能
**运行方式**:
```bash
cd test
node quick-test.js
```
**特性**:
- ✅ 快速验证API可用性
- ✅ 基础响应检查
- ✅ 简化输出格式
### 3. `postman-collection.json` - Postman测试集合
**用途**: 导入Postman进行可视化测试
**使用方式**:
1. 打开Postman
2. 点击 Import
3. 选择 `postman-collection.json` 文件
4. 运行测试集合
**包含测试**:
- 原有同步API
- 新的异步API
- 状态查询
- 模板列表获取
- 错误场景测试
### 4. `curl-commands.sh` - cURL命令脚本
**用途**: 使用cURL命令行工具进行测试
**运行方式**:
```bash
cd test
chmod +x curl-commands.sh
./curl-commands.sh
```
**特性**:
- ✅ 无需额外工具
- ✅ 适合CI/CD集成
- ✅ 详细的状态查询循环
- ✅ 实时性能指标
## 🚀 测试API对比
### 原有同步API
```
POST /api/v1/templates/code/photo_restore_v1/execute
{
"imageUrl": "https://cdn.roasmax.cn/upload/676d85ae7c6347f49700631c84a13051.jpg"
}
```
**特点**:
- 🔄 同步执行,需要等待完整结果
- ⏱️ 响应时间较长2-5秒
- 🚫 可能遇到审核阻塞问题
### 新的异步API
#### 步骤1: 提交任务
```
POST /enhanced/templates/code/photo_restore_v1/execute
{
"imageUrl": "https://cdn.roasmax.cn/upload/676d85ae7c6347f49700631c84a13051.jpg"
}
```
**响应示例**:
```json
{
"code": 200,
"message": "模板执行已提交,正在进行图片审核",
"data": {
"executionId": 123,
"auditTaskId": "audit_bytedance_1726500000_abc123",
"status": "pending_audit",
"message": "图片审核中,请查询执行进度获取最新状态"
}
}
```
#### 步骤2: 查询状态
```
GET /enhanced/templates/{executionId}/status
```
**响应示例**:
```json
{
"code": 200,
"message": "查询成功",
"data": {
"executionId": 123,
"status": "completed",
"statusDescription": "执行完成",
"auditTaskId": "audit_bytedance_1726500000_abc123",
"templateName": "照片修复模板",
"inputImageUrl": "https://cdn.roasmax.cn/upload/676d85ae7c6347f49700631c84a13051.jpg",
"outputUrl": "https://example.com/result.jpg",
"startedAt": "2024-12-05T10:00:00Z",
"completedAt": "2024-12-05T10:02:30Z"
}
}
```
## 📊 状态流转说明
异步API的状态会按以下顺序变化
```
pending_audit → processing → completed
↓ ↓ ↓
图片审核中 AI生成中 执行完成
或者:
pending_audit → audit_failed
↓ ↓
图片审核中 审核未通过
```
## 🔧 运行前准备
### 1. 确保服务运行
```bash
npm run start:dev
# 或
npm run start:prod
```
### 2. 验证服务状态
```bash
curl http://localhost:3003/api/v1/templates
```
### 3. 检查认证令牌
确保提供的JWT令牌未过期且有效。
## 📈 预期测试结果
### 性能对比
| 指标 | 原有API | 异步API | 改进 |
|------|---------|---------|------|
| 初次响应时间 | 2-5秒 | <200ms | 90%+ |
| 用户体验 | 阻塞等待 | 异步轮询 | 大幅提升 |
| 系统吞吐 | 串行处理 | 并行处理 | 3-5倍 |
### 功能验证
- ✅ API调用成功
- ✅ 响应格式正确
- ✅ 状态流转正常
- ✅ 错误处理恰当
- ✅ 认证验证通过
## 🐛 常见问题排查
### 1. 连接失败
**现象**: `ECONNREFUSED`
**解决**: 确保服务在3003端口启动
### 2. 认证失败
**现象**: `401 Unauthorized`
**解决**: 检查JWT令牌是否正确且未过期
### 3. 图片访问失败
**现象**: `无效的图片URL`
**解决**: 确保图片URL可公网访问
### 4. 超时问题
**现象**: 请求超时
**解决**:
- 检查网络连接
- 适当增加超时时间
- 确认服务器负载正常
## 📝 测试报告模板
测试完成后,请记录以下信息:
```
测试时间: ______
测试环境: ______
服务版本: ______
原有API:
- 响应时间: ____ms
- 成功率: ____%
- 错误信息: ______
异步API:
- 初次响应时间: ____ms
- 完整执行时间: ____ms
- 成功率: ____%
- 状态变化: pending_audit → ____ → ____
性能提升:
- 响应速度提升: ____%
- 用户体验改善: ______
- 推荐使用: [原有API / 异步API]
问题记录:
1. ______
2. ______
建议:
1. ______
2. ______
```
## 🎯 下一步建议
1. **如果异步API测试成功**:
- 建议迁移到新的异步架构
- 更新客户端代码支持状态轮询
- 逐步废弃原有同步API
2. **如果发现问题**:
- 记录详细错误信息
- 检查服务器日志
- 联系开发团队解决
3. **生产环境部署前**:
- 执行完整的集成测试
- 进行压力测试
- 验证监控和告警系统
---
**测试套件版本**: v1.0
**最后更新**: 2024-12-05
**维护者**: AI Assistant