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

6.7 KiB
Raw Blame History

邮件节点和消息队列节点测试指南

📋 测试概述

本指南将帮助您测试新实现的邮件节点消息队列节点功能。

已完成功能

1. 邮件节点 (Email Node)

  • SMTP配置服务器、端口、用户名、密码
  • TLS/SSL支持
  • 发件人、收件人、抄送、密送
  • 邮件主题和正文支持纯文本和HTML
  • 附件支持文件路径或Base64编码
  • 变量替换(支持 {key} 和 ${key} 格式)

2. 消息队列节点 (Message Queue Node)

  • RabbitMQ集成
    • Exchange和Routing Key支持
    • 直接队列发送
    • 变量替换
  • Kafka集成
    • Topic发送
    • 多服务器配置
    • 变量替换

🧪 测试步骤

前置条件

  1. 安装依赖

    cd /home/renjianbo/aiagent/backend
    pip3 install aiosmtplib aio-pika kafka-python
    
  2. 重启后端服务(如果需要)

    # 如果使用Docker
    docker-compose restart backend
    
    # 如果直接运行
    # 重启uvicorn服务
    

测试1: 邮件节点

方式一使用测试SMTP服务推荐

  1. 注册测试邮箱服务

  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. 运行工作流

    • 输入参数:
      {
        "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

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. 运行工作流

    • 输入参数:
      {
        "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

测试步骤

  1. 在前端创建测试工作流

    • 添加节点:
      • 开始节点
      • 消息队列节点选择Kafka
      • 结束节点
  2. 配置消息队列节点

    队列类型: Kafka
    Bootstrap Servers: localhost:9092
    Topic: test_topic
    消息内容: {"test_key": "{test_key}", "test_data": "{test_data}"}
    
  3. 运行工作流

    • 输入参数:
      {
        "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年