接口测试_f12或fiddler 抓接口

 url:http://cms.duoceshi.cn/cms/manage/index.do

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口

 

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_02

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_03

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_04

 

第二种方法:fiddle

一.Fiddler 简介

​fiddler 是 C# 开发免费web调试工具之一,记录所有客户端和服务端常见的 http 以及 https 请求,可监视设断点,甚至修改输入输出数据,它还包含了一个强大的基于事件脚本的子系统,并且能使用 .net 语言来拓展。

Fiddler也是一款专用的抓包工具,也是一个调试工具,我们可以用来抓包网络数据 ;

二.fiddler结构介绍

fiddler 的界面按钮的排版来依次讲解这些按钮的作用,主要讲解 fiddler 界面上的 7 大板块,

从菜单栏→工具栏→底端状态栏→命令行控制台→ session 栏→ request 栏→ response 栏来依次讲解,

三.Fiddler 工作原理

Fiddler 以代理 Web 服务器的形式工作的,使用代理地址为 127.0.0.1,端口 8888,当 fiddler 开启时自动开始代理,关闭 fiddler 时自动注销,这样就不会影响其他程序。只要是支持 http 代理服务器的任意程序都可以被 fiddler 嗅探到,fiddler 的运行机制其实就是本机上监听 8888 端口的 HTTP 代理。

注意一下,要是 fiddler 没有正常退出,可能造成 fiddler 没有正常注销,使得页面没法访问。

一、断点

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

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_05

 

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

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

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_06

 

三、全局断点

1.全局断点就是中断fiddler捕获的所有请求,先设置下,点击rules-> automatic breakpoint  ->before requests

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_07

2.选中before requests选项后,打开博客园首页:http://www.cnblogs.com/yoyoketang/,看到如下T的标识,说明断点成功

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_08

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

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_09

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

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_10

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 回车

 

接口测试_f12或fiddler 抓接口_接口测试_f12或fiddler 抓接口_11

 

 

 

 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请求。