# 前端测试邮件和消息队列节点

## 🎯 快速测试指南

由于后端服务已经在运行，您可以直接在前端界面测试新实现的邮件节点和消息队列节点。

## 📧 测试邮件节点

### 步骤1: 创建工作流

1. 登录系统: http://101.43.95.130:8038
2. 点击"工作流管理"
3. 点击"创建新工作流"

### 步骤2: 添加节点

1. **添加开始节点**
   - 从左侧工具箱拖拽"开始"节点到画布

2. **添加邮件节点**
   - 从左侧工具箱拖拽"邮件"节点到画布
   - 连接开始节点到邮件节点

3. **添加结束节点**
   - 从左侧工具箱拖拽"结束"节点到画布
   - 连接邮件节点到结束节点

### 步骤3: 配置邮件节点

点击邮件节点，在右侧配置面板中填写：

#### 基础配置
- **SMTP服务器**: `smtp.gmail.com` (或使用测试服务如 `smtp.mailtrap.io`)
- **SMTP端口**: `587`
- **SMTP用户名**: 您的邮箱地址
- **SMTP密码**: 应用专用密码（Gmail需要）
- **使用TLS**: ✅ 开启

#### 邮件内容
- **发件人邮箱**: `your-email@gmail.com`
- **收件人邮箱**: `recipient@example.com`
- **邮件主题**: `测试邮件 - {test_key}`
- **邮件正文类型**: `纯文本` 或 `HTML`
- **邮件正文**: 
  ```
  这是一封测试邮件。
  
  测试数据: {test_data}
  时间: {timestamp}
  ```

#### 变量替换示例
邮件节点支持变量替换，使用 `{key}` 或 `${key}` 格式：
- `{test_key}` - 从输入数据中获取 `test_key` 的值
- `{test_data}` - 从输入数据中获取 `test_data` 的值

### 步骤4: 保存并运行

1. 点击工具栏的"保存"按钮
2. 点击"运行"按钮
3. 在运行对话框中输入测试数据：
   ```json
   {
     "test_key": "Hello World",
     "test_data": "这是测试数据",
     "timestamp": "2024-01-01 12:00:00"
   }
   ```
4. 点击"开始运行"
5. 查看执行结果和执行日志

### 步骤5: 验证结果

- ✅ 检查执行状态是否为"成功"
- ✅ 查看执行日志，确认邮件发送成功
- ✅ 检查收件箱，确认收到邮件
- ✅ 验证邮件主题和正文中的变量是否正确替换

## 🐰 测试RabbitMQ消息队列节点

### 前置条件

确保RabbitMQ服务正在运行：
```bash
# 使用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

### 步骤1-2: 创建工作流并添加节点

1. 添加开始节点
2. 添加"消息队列"节点
3. 添加结束节点
4. 连接节点

### 步骤3: 配置消息队列节点

点击消息队列节点，在右侧配置面板中：

1. **选择队列类型**: `RabbitMQ`

2. **RabbitMQ配置**:
   - **主机地址**: `localhost` (或服务器IP)
   - **端口**: `5672`
   - **用户名**: `admin` (或您的RabbitMQ用户名)
   - **密码**: `admin123` (或您的RabbitMQ密码)
   - **队列名称**: `test_queue`
   - **Routing Key**: `test.routing.key` (可选)
   - **Exchange**: (可选，如果使用Exchange)

3. **消息内容**:
   ```json
   {
     "test_key": "{test_key}",
     "test_data": "{test_data}",
     "timestamp": "{timestamp}"
   }
   ```

### 步骤4: 保存并运行

1. 保存工作流
2. 运行工作流，输入测试数据：
   ```json
   {
     "test_key": "Hello RabbitMQ",
     "test_data": "这是测试数据",
     "timestamp": "2024-01-01 12:00:00"
   }
   ```
3. 查看执行结果

### 步骤5: 验证结果

1. 访问RabbitMQ管理界面: http://localhost:15672
2. 登录后，进入"Queues"标签
3. 找到 `test_queue` 队列
4. 点击队列名称，查看消息
5. 确认消息内容正确，变量已替换

## 📨 测试Kafka消息队列节点

### 前置条件

确保Kafka服务正在运行（需要Zookeeper）：
```bash
# 使用Docker Compose启动Kafka
# 创建 docker-compose-kafka.yml 文件
```

### 步骤1-2: 创建工作流并添加节点

1. 添加开始节点
2. 添加"消息队列"节点
3. 添加结束节点
4. 连接节点

### 步骤3: 配置Kafka节点

点击消息队列节点，在右侧配置面板中：

1. **选择队列类型**: `Kafka`

2. **Kafka配置**:
   - **Bootstrap Servers**: `localhost:9092` (多个服务器用逗号分隔)
   - **Topic**: `test_topic`

3. **消息内容**:
   ```json
   {
     "test_key": "{test_key}",
     "test_data": "{test_data}",
     "timestamp": "{timestamp}"
   }
   ```

### 步骤4: 保存并运行

1. 保存工作流
2. 运行工作流，输入测试数据
3. 查看执行结果

### 步骤5: 验证结果

使用Kafka消费者工具查看消息：
```bash
# 使用kafka-console-consumer
kafka-console-consumer --bootstrap-server localhost:9092 --topic test_topic --from-beginning
```

## 🔍 测试检查清单

### 邮件节点
- [ ] 节点可以正常添加到画布
- [ ] 配置面板所有字段正常显示
- [ ] 保存配置成功
- [ ] 工作流执行成功
- [ ] 邮件成功发送
- [ ] 变量替换正确（主题和正文）
- [ ] HTML格式邮件正确渲染（如果使用HTML）
- [ ] 执行日志显示详细信息

### 消息队列节点
- [ ] 节点可以正常添加到画布
- [ ] 可以切换队列类型（RabbitMQ/Kafka）
- [ ] 配置面板根据队列类型显示不同字段
- [ ] 保存配置成功
- [ ] 工作流执行成功
- [ ] 消息成功发送到队列/Topic
- [ ] 变量替换正确
- [ ] 执行日志显示详细信息

## 🐛 常见问题排查

### 邮件节点问题

1. **SMTP连接失败**
   - 检查SMTP服务器地址和端口
   - 确认网络连接正常
   - 检查防火墙设置

2. **认证失败**
   - Gmail需要使用应用专用密码，不是普通密码
   - 确认账号已启用"允许不够安全的应用"
   - 检查用户名和密码是否正确

3. **变量未替换**
   - 确认输入数据中包含对应的key
   - 检查变量格式：`{key}` 或 `${key}`
   - 查看执行日志确认输入数据

### 消息队列节点问题

1. **RabbitMQ连接失败**
   - 确认RabbitMQ服务正在运行
   - 检查主机地址和端口
   - 确认用户名和密码正确
   - 检查网络连接

2. **Kafka连接失败**
   - 确认Kafka服务正在运行
   - 检查Bootstrap Servers配置
   - 确认Topic已创建
   - 检查网络连接

3. **消息未发送**
   - 查看执行日志中的错误信息
   - 检查节点配置是否正确
   - 确认队列/Topic存在

## 📝 测试数据示例

### 邮件节点测试数据
```json
{
  "test_key": "Hello World",
  "test_data": "这是测试数据",
  "timestamp": "2024-01-01 12:00:00",
  "user_name": "测试用户",
  "order_id": "12345"
}
```

### 消息队列节点测试数据
```json
{
  "test_key": "Hello Queue",
  "test_data": "这是测试数据",
  "timestamp": "2024-01-01 12:00:00",
  "event_type": "user_action",
  "user_id": "12345"
}
```

## 🎯 下一步

测试通过后，您可以：
1. 在实际工作流中使用这些节点
2. 继续开发其他功能
3. 优化节点功能和用户体验

---

**提示**: 如果遇到问题，请查看执行详情页面的日志信息，那里会显示详细的错误信息。
