fiddler、Charles-断点

时光总嘲笑我的痴心妄想 提交于 2020-03-18 17:32:05

3 月,跳不动了?>>>

一、添加Charles断点

1、用Charles抓包发起一次接口请求

2、对要打断点的接口右键,选择【Breakpoints】

 

二、Charles断点设置

1、点击Charles菜单-【Proxy】-【Breakpoint...】,此时会弹出【Breakpoints Settings】对话框

 

2、双击【Location】内的接口地址,此时会弹出【Edit Breakpoint】对话框

3、在【Query】项输入:*

4、如果我只需要修改返回的参数,就只勾选【Response】

 

三、修改接口返回值

1、再次发起接口请求,此时会弹出下面的对话框

2、点击【Edit Response】,修改返回的报文

3、点击底部的【Execute】将修改后的报文返回

 

 

 

前言

先给大家讲一则小故事,在我们很小的时候是没有手机的,那时候跟女神聊天都靠小纸条。某屌丝A男对隔壁小王的隔壁女神C倾慕已久,于是天天小纸条骚扰,无奈中间隔着一个小王,这样小王就负责传小纸条了。有一天小王忍不住偷偷打开A男表白的纸条,把里面内容改了下,改成了:我的同桌小王喜欢你。最后女神C和小王走在了一起。。。这是一个悲伤的故事!

 

一、断点

1.为什么要打断点呢?

比如一个购买的金额输入框,输入框前端做了限制100-1000,那么我们测试的时候,需要测试小于100的情况下。很显然前端只能输入大于100的。这是我们可以先抓到接口,修改请求参数,绕过前端,传一个小于100的数,检查服务端的功能是否OK。

也就是说接口测试其实是不需要管前端的,主要测后端的功能。Fiddler作为代理服务器的作用其实就相当于上面故事里面的小王,传纸条的作用,Fiddler(小王)修改了请求参数(小纸条),是为了验证服务端功能(女神C)。

2.Fiddler可以修改以下请求

--Fiddler设置断点,可以修改HTTP请求头信息,如修改Cookie,User-Agent等

--可以修改请求数据,突破表单限制,提交任意数字,如充值最大100,可以修改成10000

--拦截响应数据,修改响应体,如修改服务端返回的页面数据

 

二、断点的两种方式

1.before response:这个是打在request请求的时候,未到达服务器之前

--屌丝A传给小王的时候,小王在这个时候拦截了小纸条,未传给女神C

 

2.after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。

--女神C回了小纸条,小王拿到后拦截了,未传给屌丝A

 

三、全局断点

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

 

四、单个断点

 

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

 


请求前断点(before response): bpu

 

1. 论坛登录接口:https://passport.cnblogs.com/user/signin

 

2. 命令行输入:bpu https://passport.cnblogs.com/user/signin 回车

 

 

 

 

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

 

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

 

 

 

响应后断点(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官网手册

 

(赠言:打断点仅供测试需要,勿走歪门邪道!!!)

 

转自:https://www.cnblogs.com/yoyoketang/p/6778006.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!