Fiddler 常用快捷键与 QuickExec 命令实战
很多人用 Fiddler 只会点鼠标:右键、菜单、来回翻面板。其实 Fiddler 抓一次包动辄产生几百上千条会话,靠鼠标定位效率极低。真正高效的用法是"键盘 + QuickExec 命令行"。本文不堆砌快捷键列表,而是结合真实排查场景,讲清楚每个操作什么时候用、为什么这么用。
一、先理解会话列表的工作方式
Fiddler 主界面左侧是会话列表(Web Sessions),每一行是一次完整的 HTTP(S) 请求/响应。抓包时它会不断增长,因此高效使用的第一步不是记快捷键,而是控制列表规模:只保留你关心的会话。下面所有操作都围绕这个目标。
二、会话管理:让列表始终干净
排查一个问题前,先清空历史噪音。抓包过程中列表会混入大量无关请求(静态资源、心跳、埋点),及时清理能让你专注。
- Ctrl + X —— 清空整个会话列表。开始复现某个 bug 前先按一次,之后列表里剩下的就都和这次操作相关。
- Delete —— 删除选中会话;Shift + Delete —— 删除"未选中"的会话。后者非常实用:先用过滤或查找选出你要的几条,再 Shift + Delete 把其余全部清掉,列表瞬间只剩目标请求。
- F12 —— 暂停/继续抓包(等同菜单 Capturing)。定位到问题会话后按 F12 停止抓包,避免新请求继续刷屏把你要看的那条顶下去。
典型流程:Ctrl + X 清空 → 复现一次操作 → F12 停止抓包 → 慢慢分析。这三步能解决 80% 的"会话太多找不到"的困扰。
三、查找与定位:从上千条里秒找目标
按 Ctrl + F 打开查找框,输入关键字(URL、Host、甚至响应体里的文字)。命中的会话会被高亮成黄色底色——注意它不是过滤,而是标记,其他会话仍然可见。这样做的好处是你能看到目标请求前后的上下文(比如登录请求前的那次预检 OPTIONS)。
查找框右侧可以勾选搜索范围:
- Search only selected sessions:只在选中范围内找,适合先大范围过滤再精确查找。
- Examine both requests and responses:连响应体一起搜。排查"哪个接口返回了这段错误文案"时特别有用——直接搜文案,Fiddler 帮你定位到是哪个接口返回的。
四、请求重放:反复调试同一个接口
调接口时经常需要把同一个请求发很多遍。不用去浏览器重新操作,选中会话后:
- 按 R —— 原样重放这个请求(Replay)。
- 按住 Shift 再点重放 / 在 QuickExec 里操作 —— 可以一次重放多份,用来做简单的并发压测。
- 选中会话后按 U —— 单独重新发起该请求并忽略缓存,适合验证 CDN / 304 相关问题。
如果需要"改一点参数再发",直接把会话拖到右侧 Composer 标签页,它会把请求原封不动载入,你改完 Header 或 Body 点 Execute 即可。这比用断点更轻量,是接口联调最常用的方式。
五、QuickExec:Fiddler 真正的效率核心
主界面左下角那个黑色输入框(会话列表下方)就是 QuickExec 命令行,光标点进去输入命令回车即可。它能做很多鼠标做不到或很麻烦的事。下面是最值得记住的命令:
1. 清理与选择
cls或clear—— 清空列表,等价于 Ctrl + X,但手不用离开键盘。?keyword—— 高亮 URL 中包含 keyword 的所有会话。例如?login会点亮所有登录相关请求。select json/select image/select script—— 按响应类型选中会话。排查"某张图没加载出来"时,select image一下就把所有图片请求选出来,再看谁是红色(失败)的。=200/=404/=500—— 按状态码选中。=500直接框出所有服务端报错的请求,排查线上问题时第一条就该敲它。
2. 断点命令(最强大的一组)
用菜单设断点是"对所有请求"生效,太粗暴;QuickExec 可以精确到某个 URL:
bpu api/login—— 只对 URL 含api/login的请求,在发送前打断点(bp = breakpoint,u = uri)。请求会被拦下等你修改。bpafter api/user—— 对 URL 含api/user的请求,在响应返回后打断点,可篡改响应再放给浏览器。bps 500—— 对状态码为 500 的响应打断点(bp = breakpoint,s = status)。bpu(不带参数)—— 清除所有请求前断点;bpafter(不带参数)—— 清除所有响应断点。调试完一定记得敲这两条把断点关掉,否则会莫名其妙地卡住所有请求。
3. 快速定位
g或go—— 放行当前所有被断点拦住的请求,相当于"全部继续"。断点误开导致页面卡死时,敲g救急。!keyword—— 选中并滚动到 URL 含 keyword 的第一个会话。
六、把命令组合成工作流
单个命令价值有限,组合起来才见效率。举两个真实场景:
场景 A:排查某接口偶发 500。 cls 清空 → 复现操作 → 在 QuickExec 敲 =500 选出所有报错 → Shift + Delete 删掉其余 → 剩下的就是问题请求,逐条看响应体里的错误堆栈。
场景 B:登录接口返回参数想改成异常值测前端。 bpafter api/login 设响应断点 → 触发登录 → 请求停在列表里,右侧 Inspectors 改响应 JSON → 点 Run to Completion 放行 → 观察前端表现 → 最后 bpafter 清断点。
七、小结
Fiddler 的效率不在于记住多少快捷键,而在于建立"清空 → 复现 → 缩小范围 → 精确操作"的节奏。真正要刻进肌肉记忆的其实只有几条:Ctrl+X、Shift+Delete、Ctrl+F、R,以及 QuickExec 里的 =500、bpu / bpafter、g。把这套流程用熟,你会发现处理抓包问题的速度和过去完全不是一个量级。