一、打断点的作用
1.开发人员,调试,出错后在某个位置打断点调试代码;
2.测试人员,测试,绕过前端的限制,测试后端的反应;
3.测试人员,构造数据,设置断点可篡改请求和返回的数据包。根据测试的不同场景,有时需要在测试过程中更改请求、或者更改响应内容,从而达到最终的测试目标。
二、全局断点
所有的请求在经过fiddler时都会被中断。打全局断点的话,是无法正常上网的。
全局断点对应的是工具栏模式:
Rules -> Automatic Breakpoints
-
Before Requests :拦截所有发送给服务器的请求
-
After Responses:拦截所有服务器返回的session
-
Disabled :取消断点
或者是在下方直接设置,如图所示:
操作步骤:
1、Before Requests :拦截所有发送给服务器的请求
1)工具栏Rules -> Automatic Breakpoints -> Before Requests
2)选中before requests选项后,打开百度搜索fiddler,返回fiddler看到如下T的标识,说明断点成功。
3)找到对应请求,点击webforms,可以看到wd是搜索关键字(fiddler),我们修改为“软件测试”。点击绿色按钮【Run to Completion】(如果选择黄色的按钮“Break on Response”,请求照样可以发出去,但是会在服务器回送消息时进行一次拦截,此时你可以修改返回的数据。)
4)回到页面后,看到服务器返回给浏览器的是软件测试相关的数据。
原理:通过百度搜索fiddler,当请求到达fiddler时,fiddler进行拦截,修改请求的参数wd,点击绿色按钮,刚刚被修改的请求送达到服务器,服务器响应后将数据返回给fiddler,fiddler再返回到浏览器,浏览器进行渲染展示在页面上。
2、After Responses:拦截所有服务器返回的session
选择“Rules”–“Automatic Breakpoints”–“After Response”。此方法是在服务器接收请求,返回请求数据时被Fiddler拦截。用法同理与1
三、特定断点
使用场景:已经知道了某个接口的请求地址,只需要针对这一条请求打断点调试,fiddler只会中断该url发出的请求,其它请求正常被捕获,不会被fiddler拦截。
实际情况一般都是有针对性的对某请求或者某响应内容设置断点,所以说一般是使用命令行来打断点。
特定断点对应的是命令行模式:
-
修改Request:bpu http://www.cnblogs.com (拦截发给指定服务器的请求)
-
清除断点拦截:bpu
-
修改Response:bpafter http://www.cnblogs.com(拦截指定服务器返回的session)
-
清除断点拦截:bpafter
-
执行所有中断:go
实例:
如需要对www.baidu.com请求进行拦截,可以执行命令“bpu www.baidu.com”。所有发往www.baidu.com的请求都将会被拦截,而访问其他网站则不会被拦截。
打开fiddler工具,使用命令“bpu www.baidu.com”对发往百度网站的请求进行拦截,然后打开浏览器访问百度,此时fiddler回话列表会出现拦截信息(图标如)。在浏览器*问bbs论坛,发现并不会被拦截,只有发往百度网站的请求才会被拦截。
如果需要修改数据包的话,就按照之前的操作进行修改即可。(选中webfroms,找到数据进行修改,点击绿色按钮)
大家看的稀里糊涂的,建议自己上手操作操作,往往在操作的过程中会豁然开朗。
本篇文章写得不是很好,如有问题希望大家多多指正,我也会努力改进学习。