规则引擎
RelayCraft 的规则引擎允许您在不编写代码的情况下拦截、修改和重定向网络流量。您可以创建规则来模拟 API、测试边缘情况或调试复杂场景。
每条规则包含两个主要部分:
- 匹配条件: 决定哪些请求会触发规则。
- 动作: 定义请求匹配后执行的操作。
- 方法: HTTP 方法 (GET, POST, PUT, DELETE 等) 或 “任意”。
- URL 模式:
- 简单字符串匹配 (例如
api.example.com)。 - 通配符 (例如
*.example.com/*)。 - 正则表达式 (例如
^https:\/\/api\..+\/v1\/)。
- 简单字符串匹配 (例如
RelayCraft 提供六种类型的规则来处理网络流量:
1. 内容重写 (Content Rewrite)
Section titled “1. 内容重写 (Content Rewrite)”修改请求体 (Request Body) 或响应体 (Response Body) 的内容。
- 目标: 选择修改 请求 (发送前) 或 响应 (返回给客户端前)。
- 修改方式:
- 设置内容: 直接输入新的内容完全替换原有的 Body。
- 文本替换: 简单的字符串查找与替换。
- 正则替换: 使用正则表达式进行高级内容替换。
- JSON 修改: 针对 JSON 数据进行字段级的增删改查 (例如将
data.vip设置为true)。
应用场景: 修改 API 返回的数据以测试不同 UI 状态,或在请求中注入参数。
2. 头部重写 (Header Rewrite)
Section titled “2. 头部重写 (Header Rewrite)”修改请求头 (Request Header) 或响应头 (Response Header)。
- 操作:
- 添加/更新: 添加新的 Header 或更新现有 Header 的值 (例如
Authorization)。 - 删除: 移除指定的 Header。
- 添加/更新: 添加新的 Header 或更新现有 Header 的值 (例如
应用场景: 添加认证 Token、修改 User-Agent、处理跨域 (CORS) 问题。
3. 本地映射 (Map Local)
Section titled “3. 本地映射 (Map Local)”将请求重定向到本地文件或自定义内容,而不发送给服务器。
- 来源:
- 文件: 从本地磁盘选择一个文件 (例如 JSON 文件)。
- 手动: 直接在编辑器中输入响应体内容。
- 状态码: 自定义 HTTP 状态码 (默认: 200)。
- Headers: 自定义响应头。
应用场景: 模拟尚未开发的后端 API 接口 (Mock)。
4. 远程映射 (Map Remote)
Section titled “4. 远程映射 (Map Remote)”将请求重定向到另一个 URL。
- 目标 URL: 请求将被转发到的新地址 (例如将
prod.api.com转发到test.api.com)。
应用场景: 将生产环境的流量指向测试服务器或开发环境。
5. 弱网模拟 (Weak Network)
Section titled “5. 弱网模拟 (Weak Network)”模拟恶劣的网络环境,测试应用的健壮性。
- 延迟 (Delay): 增加请求或响应的延迟时间 (毫秒)。
- 带宽限制: 限制上传或下载速度。
- 丢包: 模拟一定比例的数据包丢失。
应用场景: 测试 App 在慢速网络、高延迟或不稳定网络下的表现。
6. 请求阻断 (Request Blocking)
Section titled “6. 请求阻断 (Request Blocking)”直接阻断请求,使其无法发送到服务器,或模拟请求失败。
- 行为:
- 中止连接 (Abort): 直接断开 TCP 连接,模拟网络错误。
- 返回错误状态码: 直接返回指定的 HTTP 错误码 (如
404 Not Found,500 Internal Server Error)。
应用场景: 测试应用在服务器宕机或网络中断时的异常处理逻辑。
- 分组: 将规则组织到不同的组中以便管理。
- 优先级: 规则按从上到下的顺序评估。第一条匹配的规则生效(除非另有配置)。
- 开关: 您可以快速启用/禁用单个规则或整个规则组。