当前位置: 代码迷 >> 综合 >> 【Fiddler】打断点
  详细解决方案

【Fiddler】打断点

热度:25   发布时间:2023-12-17 01:28:37.0
为什么要打断点呢?

比如一个购买的金额输入框,输入框前端做了限制100-1000,那么我们测试的时候,需要测试小于100的情况下。很显然前端只能输入大于100的。这是我们可以先抓到接口,修改请求参数,绕过前端,传一个小于100的数,检查服务端的功能是否OK。
也就是说接口测试其实是不需要管前端的,主要测后端的功能。Fiddler作为代理服务器的作用其实就是修改请求参数来验证服务端功能。

Fiddler可以修改以下请求
  • Fiddler设置断点,可以修改HTTP请求头信息,如修改Cookie,User-Agent等
  • 可以修改请求数据,突破表单限制,提交任意数字,如充值最大100,可以修改成10000
  • 拦截响应数据,修改响应体,如修改服务端返回的页面数据
断点的两种方式
  1. before response:这个是打在request请求的时候,未到达服务器之前
  2. after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。
全局断点
  1. 全局断点就是中断fiddler捕获的所有请求,先设置下,点击rules-> automatic breakpoint ->before requests
  2. 选中before requests选项后,打开博客园首页:http://www.cnblogs.com/yoyoketang/,看到如下T的标识,说明断点成功
  3. 打完断点后,会发现所有的请求都无法发出去了,这时候,点下Go按钮,就能走下一步了
  4. 找到需要修改的请求后,选中该条会话,右侧打开WebFroms,这时候里面的参数都是可以修改的了
  5. 修改之后点Run to Completion就能提交了,于是就成功修改了请求参数了
  6. 打全局断点的话,是无法正常上网的,需要清除断点:rules-> automatic breakpoint ->disabled
单个断点

已经知道了某个接口的请求地址,这时候只需要针对这一条请求打断点调试,在命令行中输入指令就可以了

  1. 请求前断点(before response): bpu

    1. 论坛登录接口:https://passport.cnblogs.com/user/signin
    2. 命令行输入:bpu https://passport.cnblogs.com/user/signin 回车
    3. 请求登录接口的时候,就会只拦截登录这个接口了,此时可以修改任意请求参数
    4. 取消断点,在命令行输入: bpu 回车就可以了
  2. 响应后断点(after requests): bpafter

    1. 论坛登录接口:https://passport.cnblogs.com/user/signin
    2. 在命令行输入:bpafter https://passport.cnblogs.com/user/signin 回车
    3. 登录博客园,会发现已经拦截到登录后服务器返回的数据了,此时可以修改任意返回数据
    4. 取消断点,在命令行输入: bpafter 回车就可以了
拦截来自某个网站所有请求

1.在命令行输入:bpu www.cnblogs.com

2.打开博客园任意网页,发现都被拦截到了

3.打开博客园其他网站,其它网站可以正常请求

4.说明只拦截了来自部落论坛(www.cnblogs.com)的请求

5.清除输入bpu回车即可

命令行其它相关指令

如:Bpafter,Bps,bpv,bpm,bpu,这几个命令主要用于批量设置断点

  • Bpafter xxx: 中断 URL 包含指定字符的全部 session 响应
  • Bps xxx: 中断 HTTP 响应状态为指定字符的全部 session 响应
  • Bpv xxx: 中断指定请求方式的全部 session 响应
  • Bpm xxx: 中断指定请求方式的全部 session 响应 、、同于 bpv xxx
  • Bpu xxx:与bpafter类似

当这些命令没有加参数时,会清空所有设置了断点的HTTP请求。

更多的其他命令可以参考Fiddler官网手册
在这里插入图片描述