Files
aiagent/测试指南-完整版.md
2026-01-19 00:09:36 +08:00

490 lines
11 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.
# 完整测试指南
## 📋 测试前准备
### 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年