bw-mini-app-server/test/README.md

262 lines
5.5 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.

# 模板执行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