262 lines
5.5 KiB
Markdown
262 lines
5.5 KiB
Markdown
# 模板执行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 |