第一次提交

This commit is contained in:
rjb
2026-01-19 00:09:36 +08:00
parent de4b5059e9
commit 6674060f2f
191 changed files with 40940 additions and 0 deletions

View File

@@ -0,0 +1,290 @@
# 邮件节点和消息队列节点测试指南
## 📋 测试概述
本指南将帮助您测试新实现的**邮件节点**和**消息队列节点**功能。
## ✅ 已完成功能
### 1. 邮件节点 (Email Node)
- ✅ SMTP配置服务器、端口、用户名、密码
- ✅ TLS/SSL支持
- ✅ 发件人、收件人、抄送、密送
- ✅ 邮件主题和正文支持纯文本和HTML
- ✅ 附件支持文件路径或Base64编码
- ✅ 变量替换(支持 {key} 和 ${key} 格式)
### 2. 消息队列节点 (Message Queue Node)
- ✅ RabbitMQ集成
- Exchange和Routing Key支持
- 直接队列发送
- 变量替换
- ✅ Kafka集成
- Topic发送
- 多服务器配置
- 变量替换
## 🧪 测试步骤
### 前置条件
1. **安装依赖**
```bash
cd /home/renjianbo/aiagent/backend
pip3 install aiosmtplib aio-pika kafka-python
```
2. **重启后端服务**(如果需要)
```bash
# 如果使用Docker
docker-compose restart backend
# 如果直接运行
# 重启uvicorn服务
```
### 测试1: 邮件节点
#### 方式一使用测试SMTP服务推荐
1. **注册测试邮箱服务**
- [Mailtrap](https://mailtrap.io) - 免费测试邮箱
- [Ethereal Email](https://ethereal.email) - 临时测试邮箱
2. **在前端创建测试工作流**
- 登录系统
- 创建工作流
- 添加节点:
- 开始节点
- 邮件节点
- 结束节点
3. **配置邮件节点**
```
SMTP服务器: smtp.mailtrap.io (或从Mailtrap获取)
SMTP端口: 2525 (或587)
SMTP用户名: [从Mailtrap获取]
SMTP密码: [从Mailtrap获取]
使用TLS: 是
发件人邮箱: test@example.com
收件人邮箱: recipient@example.com
邮件主题: 测试邮件 - {test_key}
邮件正文类型: 纯文本
邮件正文: 这是一封测试邮件。\n\n测试数据: {test_data}
```
4. **运行工作流**
- 输入参数:
```json
{
"test_key": "Hello World",
"test_data": "这是测试数据"
}
```
- 点击"运行"
- 检查执行结果
#### 方式二使用Gmail SMTP
1. **配置Gmail应用专用密码**
- 登录Google账号
- 启用两步验证
- 生成应用专用密码
2. **配置邮件节点**
```
SMTP服务器: smtp.gmail.com
SMTP端口: 587
SMTP用户名: your-email@gmail.com
SMTP密码: [应用专用密码]
使用TLS: 是
发件人邮箱: your-email@gmail.com
收件人邮箱: recipient@example.com
邮件主题: 测试邮件
邮件正文: 这是一封测试邮件
```
### 测试2: RabbitMQ消息队列节点
#### 前置条件启动RabbitMQ
**使用Docker启动RabbitMQ**
```bash
docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin123 \
rabbitmq:3-management
```
访问管理界面: http://localhost:15672 (用户名: admin, 密码: admin123)
#### 测试步骤
1. **在前端创建测试工作流**
- 添加节点:
- 开始节点
- 消息队列节点
- 结束节点
2. **配置消息队列节点**
```
队列类型: RabbitMQ
主机地址: localhost
端口: 5672
用户名: admin
密码: admin123
队列名称: test_queue
Routing Key: test.routing.key
消息内容: {"test_key": "{test_key}", "test_data": "{test_data}"}
```
3. **运行工作流**
- 输入参数:
```json
{
"test_key": "Hello RabbitMQ",
"test_data": "这是测试数据"
}
```
- 点击"运行"
- 在RabbitMQ管理界面查看队列中的消息
### 测试3: Kafka消息队列节点
#### 前置条件启动Kafka
**使用Docker Compose启动Kafka**
```yaml
# docker-compose-kafka.yml
version: '3.8'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
```
启动命令:
```bash
docker-compose -f docker-compose-kafka.yml up -d
```
#### 测试步骤
1. **在前端创建测试工作流**
- 添加节点:
- 开始节点
- 消息队列节点选择Kafka
- 结束节点
2. **配置消息队列节点**
```
队列类型: Kafka
Bootstrap Servers: localhost:9092
Topic: test_topic
消息内容: {"test_key": "{test_key}", "test_data": "{test_data}"}
```
3. **运行工作流**
- 输入参数:
```json
{
"test_key": "Hello Kafka",
"test_data": "这是测试数据"
}
```
- 点击"运行"
- 使用Kafka消费者工具查看消息
## 🔍 验证要点
### 邮件节点验证
- ✅ 邮件成功发送
- ✅ 变量替换正确(主题和正文中的 {key} 被替换)
- ✅ HTML格式邮件正确渲染
- ✅ 附件正确附加(如果配置了附件)
### 消息队列节点验证
- ✅ 消息成功发送到队列
- ✅ 变量替换正确
- ✅ RabbitMQ: 消息出现在指定队列
- ✅ Kafka: 消息出现在指定Topic
## 🐛 常见问题
### 邮件节点问题
1. **SMTP连接失败**
- 检查SMTP服务器地址和端口
- 检查防火墙设置
- 确认TLS/SSL配置正确
2. **认证失败**
- 检查用户名和密码
- Gmail需要使用应用专用密码
- 确认账号已启用SMTP访问
3. **变量未替换**
- 确认输入数据中包含对应的key
- 检查变量格式:{key} 或 ${key}
### 消息队列节点问题
1. **RabbitMQ连接失败**
- 确认RabbitMQ服务正在运行
- 检查主机地址和端口
- 确认用户名和密码正确
2. **Kafka连接失败**
- 确认Kafka服务正在运行
- 检查Bootstrap Servers配置
- 确认Topic已创建
3. **消息未发送**
- 检查节点配置
- 查看执行日志
- 确认队列/Topic存在
## 📝 测试检查清单
- [ ] 邮件节点配置验证
- [ ] 邮件节点变量替换测试
- [ ] 邮件节点HTML格式测试
- [ ] 邮件节点附件测试(可选)
- [ ] RabbitMQ节点配置验证
- [ ] RabbitMQ节点消息发送测试
- [ ] Kafka节点配置验证
- [ ] Kafka节点消息发送测试
- [ ] 错误处理测试(无效配置)
- [ ] 执行日志验证
## 🎯 下一步
测试通过后,您可以:
1. 在实际工作流中使用这些节点
2. 继续开发其他功能(模板市场、协作、批量操作)
3. 优化节点功能和用户体验
---
**测试脚本位置**: `/home/renjianbo/aiagent/backend/test_email_mq_nodes.py`
**最后更新**: 2024年