Reqable API 调试与测试工具技术分析

一、概述

1. 产品简介

Reqable 是一款新一代 API 调试与测试一站式解决方案。其核心定位是将 Fiddler、Charles 和 Postman 三类工具的功能深度整合,提供流量分析(抓包)和 API 测试(接口调试)两大核心能力。

2. 核心价值

A. 功能整合

传统的 API 开发工作流需要多个工具配合:使用 Fiddler/Charles 抓包分析网络流量,使用 Postman 进行 API 测试。Reqable 将这两类功能深度整合,一个应用即可完成完整工作流。

B. 跨平台支持

支持 Windows、macOS、Linux 桌面平台,以及 Android 和 iOS 移动平台,一套授权覆盖所有平台。

C. 性能优势

基于 Flutter 和 C++ 开发,相比同类产品在启动速度、内存占用和安装体积上有明显优势。

3. 技术架构

Reqable 采用经典 MITM(中间人)代理模式实现流量捕获,支持 HTTP/1.x、HTTP2 和 HTTP3(QUIC)协议。

graph TB
    subgraph 客户端层
        A[浏览器/App]
        B[移动端 App]
    end

    subgraph 代理层
        C[Reqable 代理]
    end

    subgraph 服务端层
        D[目标服务器]
    end

    A -->|配置系统代理| C
    B -->|WiFi 代理/扫码转发| C
    C -->|转发请求| D
    D -->|返回响应| C
    C -->|返回响应| A
    C -->|返回响应| B

Reqable 代理架构

二、核心功能

1. API 调试(抓包)

A. 协议支持

  • HTTP/1.x 和 HTTP2:完全支持
  • HTTP3(QUIC):部分支持
  • WebSocket:基于 HTTP1 的升级
  • 代理协议:HTTP/HTTPS/Socks4/Socks4a/Socks5
  • TLS 协议:TLSv1.1、TLSv1.2、TLSv1.3
  • 网络协议:IPv4 和 IPv6

B. 流量捕获

Reqable 通过系统代理配置捕获流量,支持:

  • 二级代理:支持 HTTP/HTTPS 二级代理链
  • 反向代理:无需信任 CA 证书即可调试 HTTPS 流量
  • 源检测:识别流量来源的应用
  • 镜像映射:配置指定域名和端口的镜像映射

C. 流量分析

  • 搜索过滤:多条件搜索,支持应用、域名、协议、数据类型过滤
  • 高亮显示:自定义规则以多种颜色高亮请求
  • Diff 工具:比较请求和响应消息,快速定位数据差异
  • 历史记录:自动保存录制列表便于回顾

D. 高级功能

重写功能

  • 重定向
  • Map Local(本地映射)
  • Map Remote(远程映射)
  • 请求或响应修改

断点功能

  • 对请求或响应执行实时断点操作
  • 支持修改后继续发送

脚本功能

  • 支持 Python 脚本处理请求或响应
  • 预请求脚本和后请求脚本

网关功能

  • 对请求或响应执行屏蔽、暂停等操作

E. 证书管理

  • 导入自定义 SSL 证书
  • 分析证书绑定
  • 双向认证请求

2. API 测试

A. 协议支持

  • HTTP/1.1、HTTP2 和 HTTP3(QUIC)

B. 请求构建

  • 从流量列表创建 REST API
  • 从 cURL 导入
  • 从 API 集合创建

C. 集合管理

  • 保存 API 到集合
  • 导入 Postman 集合
  • 导入 Hoppscotch 集合

D. 环境管理

  • 全局环境
  • 用户环境变量

E. 请求编辑

  • 批量编辑查询参数
  • 批量编辑请求头
  • 编辑表单
  • Text/Json/Xml 编辑
  • 文件上传

F. 认证支持

  • API Key
  • Basic Auth
  • Bearer Token

G. 代理设置

  • 自定义代理
  • 系统代理
  • 调试代理

H. 性能分析

  • 查看请求不同阶段的耗时数据

I. 其他功能

  • Cookie 管理
  • cURL 导入导出
  • 代码片段生成(支持 Python、Java、NodeJS 等主流语言)
  • 历史记录自动保存

3. 协作功能

A. 桌面与移动端协作

移动端 App 可独立使用,也可与桌面端协作:

  • 独立模式:无需依赖桌面端,独立进行流量录制和 API 测试
  • 协作模式:通过扫描桌面端二维码,自动将移动端流量转发到桌面端,无需手动配置 WiFi 代理

B. 跨平台授权

一套授权覆盖所有平台,包括桌面端和移动端。

三、技术实现

1. 开发技术栈

  • 前端框架:Flutter
  • 底层实现:C++
  • 代理机制:MITM(中间人代理)

2. 性能对比

根据官方测试数据(MacBook Pro 2017,2024 年 1 月最新版本):

指标ReqableCharlesFiddler
启动时间约 1 秒约 3 秒约 2 秒
安装体积约 20MB约 80MB约 5MB
内存占用约 100MB约 200MB约 150MB

3. 架构设计

graph LR
    subgraph UI 层
        A[Flutter 界面]
    end

    subgraph 业务层
        B[流量捕获模块]
        C[API 测试模块]
        D[脚本引擎]
    end

    subgraph 网络层
        E[代理服务器]
        F[HTTP 客户端]
    end

    subgraph 数据层
        G[会话存储]
        H[集合管理]
        I[环境变量]
    end

    A --> B
    A --> C
    B --> E
    C --> F
    B --> D
    C --> D
    B --> G
    C --> H
    C --> I

Reqable 架构设计

四、功能对比

1. 与 Fiddler/Charles 对比

功能ReqableFiddlerCharles
流量捕获
HTTP2 支持部分
API 测试
Python 脚本
跨平台✅ 全平台仅 Windows全平台
移动端协作✅ 扫码转发手动配置
Diff 工具需插件需插件

2. 与 Postman 对比

功能ReqablePostman
API 测试
流量捕获
从流量创建 API
Python 脚本JavaScript(预请求/测试)
绑定调试代理
集合导入✅ Postman/Hoppscotch

五、应用场景

1. 前端开发

  • 捕获浏览器网络请求,分析接口调用
  • 从流量快速创建 API 测试
  • 对比前后端接口数据差异

2. 移动端开发

  • 捕获 App 网络流量
  • 通过扫码自动转发流量到桌面
  • 分析接口性能和错误

3. 接口调试

  • 手动构造和发送请求
  • 测试不同参数组合
  • 验证认证和授权机制

4. 接口测试

  • 创建 API 集合
  • 编写脚本实现自动化测试
  • 导入 Postman 集合迁移

5. 问题排查

  • 使用断点拦截请求
  • 使用脚本修改请求响应
  • 使用 Diff 工具对比数据

六、安装与部署

1. 系统要求

A. Windows

  • 下载 Setup.exe 安装包
  • 按安装程序指引完成安装
  • 需要写入注册表(关联 har 等文件格式)

B. macOS

  • 支持 Apple 芯片和 Intel 芯片
  • DMG 安装:拖拽到 Applications 文件夹
  • Homebrew 安装:

    brew install --cask reqable

C. Linux

  • 需要 GTK 库支持
  • 提供 x64 架构 deb 安装包

    sudo apt install reqable-app-linux-x86_64.deb

D. 移动端

  • 从 App Store 下载 iOS 版本
  • 从 Google Play 下载 Android 版本

七、工作流程

1. 流量捕获流程

sequenceDiagram
    participant C as 客户端
    participant R as Reqable
    participant S as 服务器

    C->>R: 1. 配置系统代理
    C->>R: 2. 发送 HTTP 请求
    R->>R: 3. 拦截请求
    R->>R: 4. 执行断点/脚本
    R->>S: 5. 转发请求
    S->>R: 6. 返回响应
    R->>R: 7. 拦截响应
    R->>R: 8. 执行断点/脚本
    R->>C: 9. 返回响应
    R->>R: 10. 保存到历史记录

流量捕获流程

2. API 测试流程

graph TD
    A[开始] --> B{创建请求}
    B -->|从流量| C[选择流量记录]
    B -->|从 cURL| D[导入 cURL]
    B -->|手动创建| E[填写请求参数]
    C --> F[编辑请求]
    D --> F
    E --> F
    F --> G{发送请求}
    G --> H[查看响应]
    H --> I{保存?}
    I -->|是| J[保存到集合]
    I -->|否| K[完成]
    J --> K

API 测试流程

八、高级功能

1. 重写规则

重写功能允许修改请求或响应:

  • 重定向:将请求重定向到其他 URL
  • Map Local:将远程请求映射到本地文件
  • Map Remote:将请求映射到其他远程地址
  • 修改:修改请求头、请求体或响应内容

2. 断点调试

断点功能允许在请求发送前或响应返回前暂停:

  • 请求断点:在请求发送前拦截,可修改请求参数
  • 响应断点:在响应返回前拦截,可查看和修改响应
  • 条件断点:设置触发条件

3. Python 脚本

支持编写 Python 脚本处理请求和响应:

# 预请求脚本示例
def before_request(request):
    # 修改请求头
    request.headers['X-Custom-Header'] = 'Reqable'
    # 修改请求参数
    request.query['token'] = 'your_token'
    return request

# 后响应脚本示例
def after_response(response):
    # 处理响应数据
    data = response.json
    # 自定义逻辑
    return response

4. Diff 工具

比较两个请求或响应的差异:

  • 请求对比:比较请求头、请求体、参数等
  • 响应对比:比较响应数据
  • 并排显示:直观展示差异

5. HAR 格式支持

  • 自动关联 HAR 文件
  • 支持 HAR 导出
  • 支持打开 HAR 文件

6. Charles 会话支持

支持导入 Charles 会话文件,方便用户迁移。

九、界面定制

1. 主题支持

  • 浅色主题
  • 深色主题

2. 颜色定制

  • 11 种强调色方案
  • 15 种代码高亮颜色

十、许可证

1. 版本对比

  • 社区版:免费提供,基础功能
  • 专业版:付费解锁全部功能

2. 授权方式

一套授权覆盖所有平台,包括桌面端和移动端。

十一、技术特点总结

1. 优势

  • 功能整合:抓包 + API 测试一站式
  • 性能优异:启动快、内存占用低、体积小
  • 跨平台:全平台支持,一套授权
  • 移动协作:扫码自动转发,无需手动配置代理
  • 脚本能力:Python 脚本扩展能力强

2. 适用人群

  • 前端开发者
  • 后端开发者
  • 移动端开发者
  • 测试工程师
  • 接口调试人员

3. 替代方案

对于已有 Fiddler/Charles + Postman 工作流的用户,Reqable 可以作为统一替代方案,简化工具链,提高工作效率。


参考资料

  1. Reqable 官方网站
  2. Reqable GitHub 仓库
  3. Reqable 官方文档
最后修改:2026 年 01 月 15 日
如果觉得我的文章对你有用,请随意赞赏