接口测试之Fiddler下断点调试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试之Fiddler下断点调试相关的知识,希望对你有一定的参考价值。

参考技术A 一、使用Fiddler进行HTTP断点调试

断点调试是Fiddler又一强大和实用的工具之一。通过设置断点,Fiddler可以做到:

1. 修改HTTP请求头信息。例如修改请求头的UA, Cookie, Referer 信息,通过“伪造”相应信息达到达到相应的目的(调试,模拟用户真实请求等)。

2. 构造请求数据,突破表单的限制,随意提交数据。避免页面js和表单限制影响相关调试。

3. 拦截响应数据,修改响应实体。

为什么以上方法是重要的?假设js前端程序员和服务器程序员是分工合作的,js程序员想要调试Ajax请求的功能,这样便不必等待服务器端程序员开发好所有接口之后再开始开发js端的ajax请求功能,因为通过“模拟”真实的服务器端的响应,便可以保证功能的正确性,而服务器端开发程序员,只要保证最终的响应是符合规定的即可。这大大简化了程序开发的效率,当然也降低了不同业务线程序员联调的难度。

二、设置断点的两种方式

1.fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。

有两个断点位置:

a. before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。

b.after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。

2.命令行下输入。Bpafter xxx或者bpv,bpu,bpm等设置断点。这种断点只针对特定类型的请求。在命令行中输入命令:  bpu www.baidu.com   (这种方法只会中断www.baidu.com),如何消除命令呢?在命令行中输入命令 bpu。

三、设置全局断点before requests

1.全局断点就是中断fiddler捕获的所有请求,先设置下,点击rules-> automatic breakpoint  ->before requests(电脑端快捷键:F11)

2.选中before requests选项后,打开首页:http://www.jianshu.com/,看到网页是空白的,fiddler左侧菜单显示如下T的标识,说明断点成功

3.打完断点后,会发现所有的请求都无法发出去了,这时候,点下Go按钮,就能走下一步了

4.找到需要修改的请求后,选中该条会话,右侧打开WebFroms,这时候里面的参数都是可以修改的了

5.修改之后点Run to Completion就能提交了,于是就成功修改了请求参数了

6.打全局断点的话,是无法正常上网的,需要清除断点:rules-> automatic breakpoint  ->disabled

四、设置全局断点after requests

1.打开fiddler 点击rules-> automatic breakpoint  ->after requests(电脑端快捷键:Alt+F11)

2.浏览器打开www.jianshu.com 会发现无法打开,一直在等待中,说明断点成功

3.在fiddler会话框前面图标显示下箭头,如下图所示

4.点textview按钮

5.将“创作你 的创作”修改为“创作我的世界”

6.点Go执行按钮,在浏览器中看到如下图,名称已经变成修改后的了

7.所以此断点可以修改服务器返回的数据,改成你所需要测试的数据,这样在前端就能显示了

五、单个断点

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

请求前断点(before response): bpu

1. 登录接口:https://www.jianshu.com/sign_in

2. 命令行输入:bpu https://www.jianshu.com/sign_in  回车

3.请求登录接口的时候,就会只拦截登录这个接口了,此时可以修改任意请求参数

4.取消断点,在命令行输入: bpu 回车就可以了

响应后断点(after  requests): bpafter

1. 登录接口:https://www.jianshu.com/sign_in

2. 在命令行输入:bpafter https://www.jianshu.com/sign_in  回车

3.登录,会发现已经拦截到登录后服务器返回的数据了,此时可以修改任意返回数据

4.取消断点,在命令行输入: bpafter 回车就可以了

六、拦截来自某个网站所有请求

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

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

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

4.说明只拦截了来自(www.jianshu.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官网手册: www.telerik.com/download/fiddler/fiddler4

资料来源 测试部落-萌猫君 ,感谢分享

接口测试 - 了解fiddler




fiddler是什么?



      百度百科定义:Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。



fiddler版本说明



     fiddler2和fiddler4,功能没有区别,主要区别在于系统底层framework的版本不同,根据系统中安装的framwork版本来选择合适的fiddler版本。如果是win8以及以上,直接选择fiddler4,如果是win7或者xp你们就需要看一下系统的framework版本,fiddler4是运行在framework4以上的。fiddler2是运行在framework2.0以上的。建议将framework升级到4.0及其以上,因为对应的插件也是要分版本的。



fiddler工作原理?



     在客户端和服务器之间创建一个代理服务器,客户端发起的所有请求通过fiddler创建的代理服务器才能到达最终的服务器。

fiddler是如何实现代理的呢?



fiddler代理模式



流模式(streaming):fiddler会把服务器返回给客户端应用程序的数据实时返回给我们

缓存模式(buffering):fiddler会等待http请求所有的数据都准备好之后才会返回给我们的应用程序



fiddler常用功能



1、监控http/https流量,可以从browser或客户端软件里面向服务器发送的htpp/https请求对其截获。

2、可以查看截获请求的内容

3、可以伪造请求,不仅可以伪造服务器返回的请求还可以伪造一个请求发送给服务器

4、可以测试网站的性能

5、解密https的web会话



接口测试相关文章









接口测试 - 了解fiddler
           

你好,伙伴们


以上是关于接口测试之Fiddler下断点调试的主要内容,如果未能解决你的问题,请参考以下文章

接口测试之工具

fiddler使用积累

fiddler之模拟响应、修改请求或响应数据(断点)

fiddler常用操作之断点

Fiddler断点调试

Fiddler断点调试