Files
aiagent/测试指南-完整版.md

490 lines
11 KiB
Markdown
Raw Permalink Normal View History

2026-01-19 00:09:36 +08:00
# 完整测试指南
## 📋 测试前准备
### 1. 配置API密钥
#### 方法一:使用环境变量文件
创建或编辑 `backend/.env` 文件:
```env
# OpenAI配置
OPENAI_API_KEY=sk-your-openai-api-key-here
OPENAI_BASE_URL=https://api.openai.com/v1
# DeepSeek配置
DEEPSEEK_API_KEY=sk-your-deepseek-api-key-here
DEEPSEEK_BASE_URL=https://api.deepseek.com
```
#### 方法二使用Docker环境变量
`docker-compose.dev.yml` 中的 `backend` 服务添加:
```yaml
environment:
- OPENAI_API_KEY=sk-your-openai-api-key-here
- DEEPSEEK_API_KEY=sk-your-deepseek-api-key-here
```
### 2. 重启服务
```bash
docker-compose -f docker-compose.dev.yml restart backend
```
### 3. 验证服务运行
```bash
# 检查后端服务
docker-compose -f docker-compose.dev.yml ps backend
# 查看后端日志
docker-compose -f docker-compose.dev.yml logs --tail=20 backend
```
## 🧪 测试步骤
### 测试1基础功能测试
#### 1.1 登录系统
1. 打开浏览器访问:`http://101.43.95.130:8038``http://localhost:8038`
2. 如果未注册,先注册账号
3. 使用用户名和密码登录
4. 验证登录成功后跳转到首页
**预期结果**
- ✅ 登录成功
- ✅ 显示工作流列表页面
- ✅ 控制台无错误
#### 1.2 创建工作流
1. 点击"创建工作流"按钮
2. 进入工作流设计器
3. 验证画布显示正常
**预期结果**
- ✅ 工作流设计器正常加载
- ✅ 节点工具箱显示正常
- ✅ 可以拖拽节点到画布
### 测试2LLM节点测试
#### 2.1 创建简单工作流OpenAI
1. **添加节点**
- 从节点工具箱拖拽"开始"节点到画布
- 拖拽"LLM"节点到画布
- 拖拽"结束"节点到画布
2. **连接节点**
- 从"开始"节点的底部连接点拖到"LLM"节点的顶部
- 从"LLM"节点的底部拖到"结束"节点的顶部
3. **配置LLM节点**
- 点击"LLM"节点选中它
- 在右侧配置面板中:
- 提供商:选择"OpenAI"
- 提示词:输入 `请将以下文本翻译成英文:{input}`
- 模型:选择"GPT-3.5 Turbo"
- 温度0.7
- 点击"保存配置"
4. **保存工作流**
- 点击顶部"保存"按钮
- 验证保存成功提示
**预期结果**
- ✅ 节点可以正常连接
- ✅ LLM节点配置保存成功
- ✅ 工作流保存成功
#### 2.2 执行工作流OpenAI
1. **运行工作流**
- 点击"运行"按钮
- 输入测试数据JSON格式
```json
{
"input": "你好,世界"
}
```
- 点击"执行"
2. **查看执行结果**
- 等待执行完成
- 查看执行结果
**预期结果**
- ✅ 执行成功
- ✅ 返回英文翻译结果:"Hello, world"
- ✅ 无错误信息
#### 2.3 测试DeepSeek
1. **创建新工作流或修改现有工作流**
- 添加LLM节点
- 配置节点:
- 提供商:选择"DeepSeek"
- 提示词:`请用一句话总结:{input}`
- 模型:选择"DeepSeek Chat"
- 温度0.7
2. **执行工作流**
- 输入数据:
```json
{
"input": "人工智能是计算机科学的一个分支,它试图理解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。"
}
```
- 执行并查看结果
**预期结果**
- ✅ DeepSeek调用成功
- ✅ 返回总结结果
- ✅ 无错误信息
#### 2.4 测试DeepSeek Coder
1. **配置代码生成节点**
- 提供商DeepSeek
- 模型DeepSeek Coder
- 提示词:`请用Python编写一个函数功能是{input}`
2. **执行工作流**
- 输入数据:
```json
{
"input": "计算斐波那契数列的第n项"
}
```
- 执行并查看结果
**预期结果**
- ✅ 返回Python代码
- ✅ 代码格式正确
- ✅ 功能符合要求
### 测试3复杂工作流测试
#### 3.1 多节点工作流
创建以下工作流:
```
开始 → LLM节点(翻译) → LLM节点(总结) → 结束
```
1. **配置第一个LLM节点**(翻译):
- 提供商OpenAI
- 提示词:`将以下中文翻译成英文:{input}`
- 模型GPT-3.5 Turbo
2. **配置第二个LLM节点**(总结):
- 提供商DeepSeek
- 提示词:`请用一句话总结以下英文内容:{input}`
- 模型DeepSeek Chat
3. **执行工作流**
- 输入数据:
```json
{
"input": "人工智能技术正在快速发展,它将在未来改变我们的生活方式。"
}
```
**预期结果**
- ✅ 第一个节点返回英文翻译
- ✅ 第二个节点返回总结
- ✅ 数据正确传递
#### 3.2 条件分支工作流
创建以下工作流:
```
开始 → LLM节点(判断) → 条件节点 → [True分支] → 输出节点
[False分支] → 输出节点
```
1. **配置LLM节点**
- 提示词:`判断以下文本的情感倾向返回positive或negative{input}`
2. **配置条件节点**
- 条件表达式:`{input} == "positive"`
3. **执行工作流**
- 测试数据1正面
```json
{
"input": "今天天气真好"
}
```
- 测试数据2负面
```json
{
"input": "今天心情很糟糕"
}
```
**预期结果**
- ✅ 正面文本走True分支
- ✅ 负面文本走False分支
- ✅ 条件判断正确
### 测试4WebSocket实时推送测试
#### 4.1 使用浏览器控制台测试
1. **打开浏览器控制台**F12
2. **建立WebSocket连接**
```javascript
// 先执行一个工作流获取execution_id
// 假设execution_id为 'your-execution-id'
const executionId = 'your-execution-id';
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
const hostname = window.location.hostname;
const ws = new WebSocket(`${protocol}//${hostname}:8037/api/v1/ws/executions/${executionId}`);
ws.onopen = () => {
console.log('✅ WebSocket连接已建立');
};
ws.onmessage = (event) => {
const message = JSON.parse(event.data);
console.log('📨 收到消息:', message);
if (message.type === 'status') {
console.log('状态:', message.status);
console.log('进度:', message.progress);
}
};
ws.onerror = (error) => {
console.error('❌ WebSocket错误:', error);
};
ws.onclose = () => {
console.log('🔌 WebSocket连接已关闭');
};
// 心跳
setInterval(() => {
if (ws.readyState === WebSocket.OPEN) {
ws.send(JSON.stringify({ type: 'ping' }));
}
}, 30000);
```
3. **执行工作流**
- 在另一个标签页执行工作流
- 观察控制台中的状态更新
**预期结果**
- ✅ WebSocket连接成功
- ✅ 收到状态更新消息
- ✅ 状态从pending → running → completed
- ✅ 收到最终结果
### 测试5错误处理测试
#### 5.1 API Key错误
1. **临时移除API Key**
```bash
# 在backend/.env中注释掉API Key
# OPENAI_API_KEY=sk-xxx
```
2. **重启后端**
```bash
docker-compose -f docker-compose.dev.yml restart backend
```
3. **执行工作流**
- 使用OpenAI节点
- 执行工作流
**预期结果**
- ✅ 返回错误信息
- ✅ 错误信息清晰:`OpenAI API Key未配置...`
- ✅ 工作流执行失败但不会崩溃
#### 5.2 网络错误
1. **断开网络**或使用错误的API地址
2. **执行工作流**
**预期结果**
- ✅ 返回网络错误信息
- ✅ 错误处理正常
- ✅ 不会导致系统崩溃
#### 5.3 无效模型名称
1. **配置LLM节点**
- 模型名称:`invalid-model-name`
2. **执行工作流**
**预期结果**
- ✅ 返回模型不存在错误
- ✅ 错误信息清晰
### 测试6性能测试
#### 6.1 并发执行测试
1. **同时执行多个工作流**
- 创建3-5个不同的工作流
- 同时执行它们
**预期结果**
- ✅ 所有工作流都能正常执行
- ✅ 不会相互影响
- ✅ 执行时间合理
#### 6.2 长时间运行测试
1. **创建包含多个LLM节点的工作流**
2. **执行并监控**
- 观察执行时间
- 检查资源使用情况
**预期结果**
- ✅ 长时间运行稳定
- ✅ 内存使用正常
- ✅ 不会出现内存泄漏
## 📊 测试检查清单
### 基础功能
- [ ] 用户注册和登录
- [ ] 工作流创建和保存
- [ ] 节点拖拽和连接
- [ ] 节点配置保存
### LLM功能
- [ ] OpenAI调用成功
- [ ] DeepSeek调用成功
- [ ] DeepSeek Coder调用成功
- [ ] Prompt模板变量替换
- [ ] 不同模型选择
- [ ] 温度参数生效
- [ ] 最大Token数限制
### 工作流执行
- [ ] 简单工作流执行
- [ ] 多节点工作流执行
- [ ] 条件分支工作流
- [ ] 数据传递正确
- [ ] 执行结果正确
### WebSocket
- [ ] WebSocket连接建立
- [ ] 状态实时更新
- [ ] 心跳检测
- [ ] 连接自动断开
### 错误处理
- [ ] API Key错误处理
- [ ] 网络错误处理
- [ ] 模型错误处理
- [ ] 错误信息清晰
### 性能
- [ ] 并发执行正常
- [ ] 长时间运行稳定
- [ ] 资源使用合理
## 🐛 常见问题排查
### 问题1LLM调用失败
**检查项**
1. API Key是否正确配置
2. 网络连接是否正常
3. API余额是否充足
4. 模型名称是否正确
**解决方法**
```bash
# 检查环境变量
docker-compose -f docker-compose.dev.yml exec backend env | grep API_KEY
# 查看后端日志
docker-compose -f docker-compose.dev.yml logs --tail=50 backend
```
### 问题2WebSocket连接失败
**检查项**
1. 后端服务是否运行
2. 端口8037是否开放
3. 防火墙配置是否正确
**解决方法**
```bash
# 检查后端服务
docker-compose -f docker-compose.dev.yml ps backend
# 测试WebSocket连接
curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" \
http://localhost:8037/api/v1/ws/executions/test-id
```
### 问题3工作流执行卡住
**检查项**
1. Celery worker是否运行
2. Redis连接是否正常
3. 数据库连接是否正常
**解决方法**
```bash
# 检查Celery worker
docker-compose -f docker-compose.dev.yml ps celery
# 查看Celery日志
docker-compose -f docker-compose.dev.yml logs --tail=50 celery
# 检查Redis
docker-compose -f docker-compose.dev.yml exec redis redis-cli ping
```
## 📝 测试报告模板
```
测试日期2024-XX-XX
测试人员XXX
测试结果:
- 基础功能:✅ 通过
- LLM功能✅ 通过
- 工作流执行:✅ 通过
- WebSocket✅ 通过
- 错误处理:✅ 通过
- 性能:✅ 通过
发现问题:
1. [问题描述]
2. [问题描述]
建议:
1. [建议内容]
2. [建议内容]
```
---
**状态**: ✅ 测试指南已创建
**时间**: 2024年