『言善信』Fiddler工具 — 16.Fiddler的断点使用
1、Fiddler断点的应用
通过设置断点,Fiddler可以做到:
-
修改HTTP请求头信息。
例如:修改请求头的
User-Agent
,Cookie
,Referer
等信息,通过“伪造”相应信息达到相应的目的(调试,模拟用户真实请求等)。 -
构造请求数据,突破表单的限制,进行提交数据,避免页面js和表单限制影响相关调试。
-
拦截响应数据,修改响应实体。
例如:进行极端测试,删除返回的所有数据,查看页面的展示效果。
-
断点可以模拟网络中断。
2、断点的分类
断点分为两种:
1、before response
:这个是打在Request请求的时候,未到达服务器之前。
![](https://img.haomeiwen.com/i2495229/7ddd3a77badf4f13.png)
2、after response
:就是服务器响应之后,在Fiddler将响应传回给客户端之前。
![](https://img.haomeiwen.com/i2495229/8bfacb1f62cb0659.png)
3、设置全局断点
全局断点就是中断Fiddler捕获的所有请求。
(1)设置before Requests
全局断点:
1)配置
点击Rules
—> Automatic Breakpoint
—> Before Requests
如下图:
![](https://img.haomeiwen.com/i2495229/9fbe72f252275747.png)
可以使用快捷键F11
进行设置。
配置完成后,在状态栏中可以看到如下图标:
![](https://img.haomeiwen.com/i2495229/ec3d90b909e96c9b.png)
2)使用
例如:我们设置了before Requests
全局断点,现在访问一个登陆网页,如下:
http://test.lemonban.com/ningmengban/app/login/login.html
情况1:
填写用户名=123456123456,密码=123456,并发送请求。
会显示:手机号码格式不正确。
![](https://img.haomeiwen.com/i2495229/b4670388f627403d.png)
查看Fiddler后,发现并没有录制到任何请求,说明手机号被前端js进行校验了。
这时我们就需要绕过前端js对手机号的校验,开始执行情况2。
情况2:
填写用户名=18888888888,密码=123456,并发送请求。
发现Fiddler录制了一条请求,但是这条请求和我们之前看到的请求状态有所区别,是因为打了全局的before Requests
断点,所有要发出去的请求都被Fiddler拦截了。
如下图:
![](https://img.haomeiwen.com/i2495229/f20946cd563a80ba.png)
我们在请求报文中把手机号修改成123456123456
,一个12位的数字。
![](https://img.haomeiwen.com/i2495229/e30e0d88ce40d0af.png)
然后可以继续执行该条登陆请求。
-
方式一:点击工具栏中的
Go
按钮即可。 -
方式二:点击
Run to Completion
来完成请求。设置断点后,在Inspectors界面中会增加一行操作栏。如上图所示:
-
Break on Response
:可以继续在响应数据返回客户端前加断点。 -
Run to completion
:按照更改参数后继续提交请求。 -
Choose Response...
:是一个下拉菜单,里面有各种返回的HTTP响应,可以选择特定的响应返回,也可以按照自己自定义的特定文件来返回数据。
-
请求完成之后我们可以查看返回结果,如下图:
![](https://img.haomeiwen.com/i2495229/fe20e7bd76de00eb.png)
我们可以看出我们输入的12位数字,后台并没验证出手机号码格式不正确。(绕过前端验证,后端并没有此项验证)
由此可见,我们的断点已经设置成功,并且成功修改了HTTP的请求数据。
(2)设置After Responses
全局断点:
1)配置
点击Rules
—> Automatic Breakpoint
—> After Responses
如下图:
![](https://img.haomeiwen.com/i2495229/81772b71f3c53792.png)
可以使用快捷键Alt+F11
进行设置。
配置完成后,在状态栏中可以看到如下图标:
![](https://img.haomeiwen.com/i2495229/27f3c99268dd6135.png)
2)使用
例如:我们设置了After Responses
全局断点,现在访问一个登陆网页,如下:
http://test.lemonban.com/ningmengban/app/login/login.html
填写用户名=18888888888,密码=123456,并发送请求。
发现Fiddler录制了一条请求,如下图:
![](https://img.haomeiwen.com/i2495229/83ec99080799e04b.png)
我们把返回数据的message信息改成“登陆成功”,然后点击Run to Completion
继续完成请求。
![](https://img.haomeiwen.com/i2495229/2d800a61f14981c4.png)
请求完成之后,我们进入到Inspectors界面中,查看请求的实际返回数据。
![](https://img.haomeiwen.com/i2495229/2977aedc3948780a.png)
说明请求返回数据的内容,被我们成功修改了。
4、设置局部断点
当我们已经知道了某个接口的请求地址,而且只需要针对这一条请求进行断点调试,这时就可以设置局部断点了。
(1)设置before Requests
局部断点:
在命令行中输入指令: bpu login
![](https://img.haomeiwen.com/i2495229/9e99da4ca7cf5657.png)
这个RequestURI breakpoint for login
就表示所有URL中有login的请求都会被拦截。
说明我们的before Requests
局部断点就设置完成了。
说明:
bpu
命令后可以加完整的URL路径,也可以加局部的URL路径,URL路径越完整,拦截越精确。
继续访问http://test.lemonban.com/ningmengban/app/login/login.html
,
填写用户名=18888888888,密码=123456,并发送请求。
可以看到URL中包含login
的请求被拦截了。
![](https://img.haomeiwen.com/i2495229/be7bc4f33222b224.png)
之后的操作和上面全局断点的操作一样,这里就不演示了。
最后取消设置的before Requests
局部断点,就是在命名行直接输入bpu
回车即可,后面不用加任何内容。
之后状态栏显示RequestURI breakpoint deared
即可。
(2)设置After Responses
局部断点:
在命令行中输入指令: bpafter login
![](https://img.haomeiwen.com/i2495229/8970fd75a0dd4337.png)
这个ResponseURI breakpoint for login
就表示所有URL中有login的响应都会被拦截。
说明我们的After Responses
局部断点就设置完成了。
说明:
bpu
命令后可以加完整的URL路径,也可以加局部的URL路径,URL路径越完整,拦截越精确。
继续访问http://test.lemonban.com/ningmengban/app/login/login.html
,
填写用户名=18888888888,密码=123456,并发送请求。
可以看到URL中包含login
的响应被拦截了。
![](https://img.haomeiwen.com/i2495229/52f0b1e9b1e8ead0.png)
之后的操作和上面全局断点的操作一样,这里就不演示了。
最后取消设置的After Responses
局部断点,就是在命名行直接输入bpafter
回车即可,后面不用加任何内容。
之后状态栏显示ResponseURI breakpoint deared
即可。