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