95 lines
2.7 KiB
Markdown
95 lines
2.7 KiB
Markdown
|
|
# 测试处理器使用说明
|
|||
|
|
|
|||
|
|
这个目录包含了用于测试的处理器,可以模拟各种API请求场景,帮助开发和测试人员验证系统功能。
|
|||
|
|
|
|||
|
|
## 处理器列表
|
|||
|
|
|
|||
|
|
### 1. ProcessTestRequest - 基础测试处理器
|
|||
|
|
- **功能**: 模拟正常的API请求处理
|
|||
|
|
- **用途**: 测试基本的请求处理流程、参数验证、响应生成等
|
|||
|
|
|
|||
|
|
#### 请求参数
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"test_param": "测试参数值",
|
|||
|
|
"delay": 1000
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 响应示例
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"message": "测试请求处理成功",
|
|||
|
|
"timestamp": "2024-01-01T12:00:00Z",
|
|||
|
|
"request_id": "test_20240101120000_000000000",
|
|||
|
|
"test_param": "测试参数值",
|
|||
|
|
"process_time_ms": 1005,
|
|||
|
|
"status": "success"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. ProcessTestErrorRequest - 错误测试处理器
|
|||
|
|
- **功能**: 模拟各种错误情况
|
|||
|
|
- **用途**: 测试错误处理机制、异常响应等
|
|||
|
|
|
|||
|
|
#### 支持的错误类型
|
|||
|
|
- `system_error`: 系统错误
|
|||
|
|
- `datasource_error`: 数据源错误
|
|||
|
|
- `not_found`: 资源未找到
|
|||
|
|
- `invalid_param`: 参数无效
|
|||
|
|
|
|||
|
|
#### 请求示例
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"test_param": "system_error"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. ProcessTestTimeoutRequest - 超时测试处理器
|
|||
|
|
- **功能**: 模拟长时间处理导致的超时
|
|||
|
|
- **用途**: 测试超时处理、上下文取消等
|
|||
|
|
|
|||
|
|
## 使用场景
|
|||
|
|
|
|||
|
|
### 开发阶段
|
|||
|
|
- 验证处理器框架是否正常工作
|
|||
|
|
- 测试参数验证逻辑
|
|||
|
|
- 验证错误处理机制
|
|||
|
|
|
|||
|
|
### 测试阶段
|
|||
|
|
- 性能测试(通过delay参数)
|
|||
|
|
- 超时测试
|
|||
|
|
- 错误场景测试
|
|||
|
|
- 集成测试
|
|||
|
|
|
|||
|
|
### 调试阶段
|
|||
|
|
- 快速验证API调用流程
|
|||
|
|
- 测试中间件功能
|
|||
|
|
- 验证日志记录
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. **延迟参数**: `delay` 参数最大值为5000毫秒(5秒),避免测试时等待时间过长
|
|||
|
|
2. **上下文处理**: 所有处理器都正确处理上下文取消,支持超时控制
|
|||
|
|
3. **错误处理**: 遵循项目的错误处理规范,使用预定义的错误类型
|
|||
|
|
4. **参数验证**: 使用标准的参数验证机制,确保测试的真实性
|
|||
|
|
|
|||
|
|
## 集成到路由
|
|||
|
|
|
|||
|
|
要将测试处理器集成到API路由中,需要在相应的路由配置中添加:
|
|||
|
|
|
|||
|
|
```go
|
|||
|
|
// 在路由配置中添加测试端点
|
|||
|
|
router.POST("/api/test/basic", handlers.WrapProcessor(processors.ProcessTestRequest))
|
|||
|
|
router.POST("/api/test/error", handlers.WrapProcessor(processors.ProcessTestErrorRequest))
|
|||
|
|
router.POST("/api/test/timeout", handlers.WrapProcessor(processors.ProcessTestTimeoutRequest))
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 测试建议
|
|||
|
|
|
|||
|
|
1. **基础功能测试**: 先使用 `ProcessTestRequest` 验证基本流程
|
|||
|
|
2. **错误场景测试**: 使用 `ProcessTestErrorRequest` 测试各种错误情况
|
|||
|
|
3. **性能测试**: 通过调整 `delay` 参数测试不同响应时间
|
|||
|
|
4. **超时测试**: 使用 `ProcessTestTimeoutRequest` 验证超时处理
|
|||
|
|
5. **压力测试**: 并发调用测试处理器的稳定性
|