跳到正文
博客园· 狂师·· 6 小时前AI 评分62

AI 时代如何用 Reqable + AI Agent 玩抓包测试

AI时代我们要如何玩抓包测试:Reqable + AI Agent - 狂师

AI 导读

作者用 Reqable 内置的 MCP Server 接入 Claude Code,演示了让 AI 自动完成抓包、筛流量、建重写规则和生成接口测试的流程。Reqable 需升级到 v3.2.0 或更高,MCP 服务通过 stdio 连接本地 API(默认端口 9000),配置只需在项目根目录建 .mcp.json。

正文

抓包,测试人的看家技能之一。

查接口传参,看返回数据,定位一个 bug 到底出在前端还是后端,全都指望它。

但你回想一下,这套流程是不是十几年没变过。Charles 或者 Fiddler 把包抓下来,肉眼翻,手动筛,看中哪条,复制成 cURL,粘到 Postman 里调试。想整理接口文档,自己一条条抠。想改个返回值试试前端的容错,去设置里翻半天重写规则。工具换了几茬,干活的姿势一直是那个姿势。

AI 时代,抓包的玩法也变了,换成了 AI Agent 加抓包工具的组合。

工具可以是 Reqable,Agent 可以是 Claude Code、Codex 等。我最近就用这套组合把老流程重新玩了一遍,Reqable 负责抓包,Agent 负责指挥。玩完的感受是,抓包这件事,值得按 AI 时代的思路重学一遍。

先把 Reqable 认识一下

Reqable 是个国产工具,用官方给的定位,它是:Fiddler + Charles + Postman 三合一。集抓包调试和接口测试装于一体新一代API工具。

支持 Windows、macOS、Linux、Android、iOS 五个平台,手机端能独立抓包,也能独立发请求做接口测试。

桌面端靠系统级代理抓包,手机端走本地 VPN,两边还能协同,手机扫桌面端的二维码,流量自动转发到桌面端分析,不用再去 WiFi 设置里改代理。搞移动端测试的对这个设计应该会心一笑,被「手机和电脑必须在同一网段」支配的日子总算过去了。

底层用 Flutter 加 C++ 写的,没塞浏览器内核,官方给的数字是冷启动毫秒级,安装包 100MB 以内,跑起来内存 300MB 以内。对一个整天挂后台的工具来说,这点很实在。

顺便说句背景。Reqable 官网的关键词里至今写着 HttpCanary 新版本,作者就是当年做小黄鸟的那位,移动抓包的老玩家应该都眼熟。GitHub 上的 reqable-app 仓库目前 6800 多个 star,注意它不是开源代码库,只用来提 issue 和追进度,别 clone 完发现没源码,跑来骂我。

社区版免费,个人日常抓包调试够用,官网写着 30 万开发者在用,付费的专业版解锁更多高级能力。另外手机端因为系统安全策略,断点、重写、脚本这三样用不了,重活得回桌面端干。

而让我下决心写这篇的,是它最近更新的一个能力,官方内置了 MCP Server,Server 本体还单独开源了。翻译一下,Reqable 给 AI 留了官方接口,Claude 这类助手可以直接操作它,抓包、筛流量、建规则、管集合,AI 全都够得着。

工具准备,5分钟配齐

三样东西,Reqable 桌面端,VSCode,外加 Claude Code 插件。

第一步,装 Reqable

Mac 一条命令。

brew install reqable

也可以直接下载dmg安装包

Windows 和 Linux 去官网下安装包,exe、deb、AppImage 都有。第一次启动跟着引导装根证书并信任,不然 HTTPS 抓出来全是乱码。中间人抓包都得这么干,这麻烦不是它家独有的。

第二步,装 Claude Code

这里,我们以Claude Code进行演示,当然对于新手来说,你完全可以选择在VSCode 扩展商店搜 Claude Code,装完登录账号,侧边栏多出 Claude 图标就齐了。之后的操作全在这个面板里完成,不用另开终端。

第三步,把 Reqable 的 MCP 服务挂进 Claude Code

这步有个版本前提,Reqable 要升到 v3.2.0 或更高,老版本没这个能力。

配法有两条路。

官方给的是省事路线,打开 Reqable 桌面端顶部的「工具」菜单,里面有一项 MCP 服务器,点开是官方的配置指引页,Claude、Cursor、Codex 这些常用 AI 助手的接法都写在里面,还带一键安装。

以Claude Code为例,

另一条是手动配,就一段 JSON 的事。在项目的根目录建一个 .mcp.json,内容照抄。

{
  "mcpServers": {
    "reqable-mcp": {
      "command": "npx",
      "args": ["-y", "reqable-mcp-server"]
    }
  }
}

这个服务通过 stdio 跟 AI 通信,背后连的是 Reqable 的本地 API,默认端口 9000,端口会自动从本机 Reqable 配置里读,所以硬性前提就一条,Reqable 桌面端开着。另外 npx 依赖 Node 环境,没装的先装 Node。

配置保存后重新加载,在 Claude Code 面板里敲 /mcp 或 claude mcp list,看到 reqable-mcp 已连接就通了。

第一次会询问是否信任项目里的 MCP 服务,允许即可。想解锁全部能力,把 args 改成 ["-y", "reqable-mcp-server", "--scope", "all"],默认的 minimal 只注册最常用的一批工具。还有个参数值得记一下,--host 指向哪台机器,AI 操控的就是那台机器上的 Reqable,比如局域网里手机端那份。

自动抓包,动嘴就行

「自动」两个字,得先讲清楚自动在哪。

传统抓包,点开始,点停止,翻列表,加过滤条件,配规则,每一步都是手点。接上 MCP 之后,这些动作 Claude Code 都能替你干。它背后挂着 100 多个工具,实时抓包、断点、重写、脚本、网关、镜像、代理开关、API 集合、环境变量,全都在列,相当于把 Reqable 的遥控器递给了 AI。

实际跑一遍你就有感觉了。手机或者浏览器里把业务操作一遍,回到 VSCode 对 Claude Code 说。

先来一条最简单的测试指令:

启动Reqable抓包,然后用Chrome打开reqable.com网页,注意禁用浏览器缓存。

AI会自动控制Reqable配置系统代理并开始抓包,并控制Chrome自动打开reqable.com网页并以无缓存模式加载。

我们继续给AI下达指令,由于开了代理,reqable上会收到所有经过本系统的网络抓包请求:

 把刚才捕获的请求里,把跟 reqable.com 相关的请求都筛出来

还可以让其指定分析Reqable中的某一条请求。可以指定ID,也可以指定URL,甚至可以指定各种筛选条件,例如包含关键字testfather的请求。

帮我分析id为84这条请求

除了分析请求之外,还可以让AI在Reqable中创建接口测试,生成cURL、添加进指定API集合等等,方便开发和测试人员进行后续的排查工作。

在Reqable中给id为84这条请求创建一个API测试,并存进API集合,集合名叫首页模块

需要注意,创建集合需要登录 Reqable 账号,且需要高级版才支持集合的功能。这个有点恶心了。

除了上述演示的外,你还可以接着往下问。比如:

给 reqable.com 域名的所有请求创建断点
写一个脚本规则,把 88 号请求的响应做 AES 解密,明文打印到控制台
建一条重写规则,把响应体里所有的 qa 替换成 test

以前配一条重写规则,设置里翻三层菜单,勾匹配条件,填替换动作。现在一句话,Claude 调接口把规则建好,你切回 Reqable 验收就行。

这个过程里最值钱的变化,是人可以盯着业务,AI 盯着流量。你在手机上走业务流程,它在另一头筛数据、建资产,两条线并行。

测试开发里,已经能落地的玩法

抓包流量 → 接口测试资产

新接手一个老项目,问开发要接口文档,十有八九要不到全的。老办法是自己对着抓包记录人肉整理。现在把 App 打开,核心业务流程认真走一遍,回到 VSCode 说一句。

把这轮会话里的业务接口整理成一个 API 集合,按模块分文件夹,每个接口补上用途说明

Claude 调集合相关的工具逐条入库,一遍业务操作下来,一份带说明的接口清单就有了底子,后续维护也在这份集合上做。这个活以前人肉干,至少一天起步。

接口用例自动生成(最通用,可最先落地)

写接口自动化用例,凑参数比写代码往往更折磨人。token 从哪拿,签名怎么算,哪些字段必填,文档里经常查不到,全靠抓包一条条对。

现在让 Claude 从抓包记录里取真实请求,直接生成 pytest 用例骨架,参数、请求头、断言全按真实流量来,跑不通的地方它自己改。生成的 cURL 还能塞进 CI 做最简单的冒烟,一条命令把核心接口全过一遍。

具体来说,在用例自动生成这块,有两个值得推荐的玩法:

  • 流程录制即用例:把一条手工业务流(下单、支付、客服会话)走一遍,抓包记录全量转成 API 测试 /cURL 入库,AI 负责清理动态头、参数化,替代 "对着 Fiddler 手工抄请求"。
  • 缺陷现场快照:BUG 复现时抓的包,直接转成可重放的失败用例,连同根因分析一起挂到缺陷单上,开发和回归都省事。

Mock 数据自己造,不用等后端

想测一个余额不足的分支,你上一次是怎么把账户弄成余额不足的?找开发改库,等造数平台排期,还是干脆放掉这个场景。

这些状态在响应里就是几个字段的事。让 Claude 建响应重写规则,余额改个数字,优惠券状态改成过期,会员等级提一档,定位坐标想放哪放哪,页面立刻进入你要测的那个状态。接口没开发完的时候更省事,把接口文档发给它,Mock 响应按文档生成,前端先跑起来。埋点、风控这类上报请求同样能改,改完看服务端的校验逻辑接不接得住。

同一套重写规则,往坏了使,就是下面这个玩法。

异常注入和容错测试

前端容错测得全不全,很大程度看你能不能方便地把接口搞坏。

配一条重写规则,把订单列表接口的响应改成 500
再来一条,返回一个空数组
开一下弱网,模拟 3G 高延迟
把响应体从中间截断
把 data 里的用户字段整个删掉
往文本字段里塞一段 XSS 攻击串

改完让前端同学操作一遍,loading 转不转,兜底文案出不出,报错会不会把页面搞崩,一眼就能看出来。以前要翻设置配半天的东西,现在是口头指令。

这套注错还能跟 UI 自动化叠着跑。Playwright 在页面上点来点去的同时,让 AI 往指定接口里注异常,一次运行下来,交互对不对,接口崩了以后页面兜不兜得住,一起看了。以前交互归交互、容错归容错分两轮测,现在叠进同一轮。

关键收益:规则由 AI 生成并自动启用 + 验证生效,人工只做 review,不用再记 Reqable 规则语法。

安全测试

安全测试里有个基础检查项,看接口会不会泄露敏感数据。抓一段真实流量,让 Claude 逐条过请求头和请求体,找 token、手机号、身份证号这类明文,输出一份清单。几百条记录人眼看必漏,但AI它不会累。

  • 让 AI 扫描抓包流量中的敏感信息:明文密码、token 重复使用、PII 字段是否脱敏
  • 越权测试:AI 创建重写规则,替换请求中的 userId/orderId,验证服务端鉴权是否严格(水平越权是人工最易漏的场景。

记住核心接口挨个试过去,这种机械活它最擅长。

接口变更感知与回归对比

测试环境好好的,线上就是炸,这种问题最磨人。两边环境各抓一份包,用 Reqable 内置的请求响应对比做 diff,差异高亮直接标出来。再把有差异的两条记录丢给 Claude,让它对比响应结构,列出可能的原因。以前靠肉眼逐字段对,现在差在哪,机器先指给你。

UI 自动化挂掉时也是同一个思路。脚本失败的那几分钟,Reqable 里正好躺着同一时段的全部请求,让 Claude 按 URL 和状态码把失败项筛出来,是页面渲染的事还是接口的事,先给个方向。系统代理抓的包比 Playwright 自带的网络日志全,第三方请求、上报、重定向一个不落。

版本迭代里最经典的坑,后端改了接口没吱声,测试是从线上用户的反馈里知道的。

迭代前后各抓一轮核心业务流量,两份记录一起交给 Claude 做 diff,字段多了少了、类型变了、哪个接口干脆下线了,整理成一份变更清单。照着清单更新回归用例,该补的断言补上,该删的过时用例删掉。文档会过时,两轮真实流量摆在一起,改动藏不住。

写在最后

在 AI 时代,纯手操的工作会一件一件交到 AI 手上,编程如此,测试也如此,抓包只是其中一个例子。

老话说工欲善其事,必先利其器,放到今天,最锋利的那把器,是 AI Agent 加工具的组合。抓包工具从来不缺选项,Charles、Fiddler 是十几年的老面孔,mitmproxy 在玩脚本的人手里也很能打。Reqable 在这篇里只是个演示载体,选它图的是 MCP 官方内置,接 AI 省事。

真正值得带走的是思路,把筛流量、建规则、录用例这些粗活交出去,人盯着业务和判断。这套思路不挑工具,今天换成别的抓包软件,明天冒出个新的,照样这么打。

Reqable 官网在 https://reqable.com ,
MCP Server 开源在 https://github.com/reqable/reqable-mcp-server ,文档都在。社区版免费能上手,找个空闲的下午,把自己手头的业务抓一遍,用 Claude 跑一遍。


来源:博客园 · cnblogs.com