Loading... # 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)协议。 ```mermaid 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 ```  # 二、核心功能 ## 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 月最新版本): | 指标 | Reqable | Charles | Fiddler | |------|---------|---------|---------| | 启动时间 | 约 1 秒 | 约 3 秒 | 约 2 秒 | | 安装体积 | 约 20MB | 约 80MB | 约 5MB | | 内存占用 | 约 100MB | 约 200MB | 约 150MB | ## 3. 架构设计 ```mermaid 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 ```  # 四、功能对比 ## 1. 与 Fiddler/Charles 对比 | 功能 | Reqable | Fiddler | Charles | |------|---------|---------|---------| | 流量捕获 | ✅ | ✅ | ✅ | | HTTP2 支持 | ✅ | 部分 | ✅ | | API 测试 | ✅ | ❌ | ❌ | | Python 脚本 | ✅ | ❌ | ❌ | | 跨平台 | ✅ 全平台 | 仅 Windows | 全平台 | | 移动端协作 | ✅ 扫码转发 | ❌ | 手动配置 | | Diff 工具 | ✅ | 需插件 | 需插件 | ## 2. 与 Postman 对比 | 功能 | Reqable | Postman | |------|---------|---------| | 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 安装: ```bash brew install --cask reqable ``` ### C. Linux - 需要 GTK 库支持 - 提供 x64 架构 deb 安装包 ```bash sudo apt install reqable-app-linux-x86_64.deb ``` ### D. 移动端 - 从 App Store 下载 iOS 版本 - 从 Google Play 下载 Android 版本 # 七、工作流程 ## 1. 流量捕获流程 ```mermaid 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 测试流程 ```mermaid 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 ```  # 八、高级功能 ## 1. 重写规则 重写功能允许修改请求或响应: - **重定向**:将请求重定向到其他 URL - **Map Local**:将远程请求映射到本地文件 - **Map Remote**:将请求映射到其他远程地址 - **修改**:修改请求头、请求体或响应内容 ## 2. 断点调试 断点功能允许在请求发送前或响应返回前暂停: - **请求断点**:在请求发送前拦截,可修改请求参数 - **响应断点**:在响应返回前拦截,可查看和修改响应 - **条件断点**:设置触发条件 ## 3. Python 脚本 支持编写 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 官方网站](https://reqable.com) 2. [Reqable GitHub 仓库](https://github.com/reqable/reqable-app) 3. [Reqable 官方文档](https://reqable.com/en-US/docs/introduction) 最后修改:2026 年 01 月 15 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏