Files
aiagent/邮件和消息队列节点测试指南.md
2026-01-19 00:09:36 +08:00

291 lines
6.7 KiB
Markdown
Raw Permalink 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. 邮件节点 (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年