fiddler断点调试
一. 使用Fiddler进行HTTP断点调试。
这是Fiddler又一强大和实用的工具之一。通过设置断点,Fiddler可以做到:
1. 修改HTTP请求头信息。例如修改请求头的UA, Cookie, Referer 信息,通过“伪造”相应信息达到达到相应的目的(调试,模拟用户真实请求等)。
2. 构造请求数据,突破表单的限制,随意提交数据。避免页面js和表单限制影响相关调试。
3. 拦截响应数据,修改响应实体。
为什么以上方法是重要的?假设js前端程序员和服务器程序员是分工合作的,js程序员想要调试Ajax请求的功能,这样便不必等待服务器端程序员开 发好所有接口之后再开始开发js端的ajax请求功能,因为通过“模拟”真实的服务器端的响应,便可以保证功能的正确性,而服务器端开发程序员,只要保证 最终的响应是符合规定的即可。这大大简化了程序开发的效率,当然也降低了不同业务线程序员联调的难度。
二、断点的两种方式
1.before response:也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。
2.after response:也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。
三、fiddler设置断点两种方式
第一种:全局断点
打开fiddler 点击rules-> automatic breakpoint ->before requests(这种方法会中断所有的会话)
如何消除命令呢?
点击rules-> automatic breakpoint ->disabled
第二种: 针对某一个请求断点
在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com)
如何消除命令呢?
在命令行中输入命令 bpu
四、设置全局断点:before requests
1.打开fiddler 点击rules-> automatic breakpoint ->before requests
(快捷键:F11)
2.打开浏览器,浏览任意网站
3.在fiddler界面显示如下,前面的图标为红色T
4.点Go按钮可以放弃此处断点,继续走下一步
5找到需要调试的请求后,选中左侧需要调试的一行
6.右侧框打开webfroms,红色区域的传入参数此时为可修改状态
7.修改传入参数,如:将clan参数值修改为1
8.点run to completion 按钮执行,提交给服务器
9.所以此断点可以修改任意你想请求的参数
五、设置全局断点:after requests
1.打开fiddler 点击rules-> automatic breakpoint ->after requests
(快捷键:Alt+F11)
2.浏览器打开www.hordehome.com 会发现无法打开,一直在等待中,说明断点成功
3.在fiddler会话框前面图标显示下箭头,如下图所示
4.右侧区域,显示:response body is encode,click to encode(这个前面的讲过)点击此处就可以了
5.点textview按钮
6.将“部落之家”修改为“软件测试部落”
7.点执行按钮,在浏览器中看到如下图,部落论坛名称已经变成修改后的了
8.所以此断点可以修改服务器返回的数据,改成你所需要测试的数据,这样在前端就能显示了
六、针对某一特定请求打断点
当我们在测试的时候,已经知道了某个接口的请求地址,这时候只需要针对这一条请求打断点调试,这时候只需要在命令行中输入指令就可以了
第一种,请求前断点(before response):bpu
1. 论坛登录接口:http://www.hordehome.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1
2. 在命令行输入
bpu http://www.hordehome.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1
后回车
3.登录部落之家论坛,会发现已经拦截到登录请求了。这时候可以修改任意请求的参数
4.取消断点,在命令行输入:bpu 回车就可以了
第二种,响应后断点(after requests):bpafter
1. 论坛登录接口:http://www.hordehome.com/member.php?mod=logging&action=login& amp;loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1
2. 在命令行输入
bpafter http://www.hordehome.com/member.php?mod=logging&action=login& amp;loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1
后回车
3.登录部落之家论坛,会发现已经拦截到登录后服务器返回的数据了。这时候可以修改任意返回数据
4.取消断点,在命令行输入:bpafter 回车就可以了
七、拦截来自某个网站所有请求
1.在命令行输入:bpu www.hordehome.com
2.打开部落论坛任意网页,发现都被拦截到了
3.打开百度等其他网站,其它网站可以正常请求
4.说明只拦截了来自部落论坛(www.hordehome.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官网手册。