前言:Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(例如cookie,html,js,css等文件)。换句话说就是Fiddler可以拦截请求和响应的http代理工具。
应用场景:
1.接口调试和测试
2.线上环境调试
3.web性能分析
4.判断前后端bug
5.开发环境hosts配置
6.mock(虚拟测试)
7.弱网和断网测试等
工作原理
在用Fiddler之前需要先熟悉HTTP,一个HTTP请求和响应包含哪些内容呢?(以下数据都可以通过Fiddler抓包查看)
HTTP请求包含:请求行、请求头、空行(post)、请求正文
1.请求行:请求方法 、请求资源地址、HTTP协议和版本号
2.请求头(部分):
3.空行:告诉服务器请求头部到此为止
4.请求数据(请求体):
(1)若是get方法,没有请求体,get请求的数据在url中一起提交
(2)post方法,要提交的数据和内容,是有请求体的,post会产生两个数据包,浏览器先发送header,服务器响应100continue,浏览器再发送data,服务器响应200ok
响应包含:状态行、消息报头、响应正文三部分组成
1.状态行包含:响应码(200 )、协议(HTTP/1.1)
2.常见的响应头部信息如图:
3.响应正文:服务器返回的数据
如何用fiddler进行弱网测试?
1.Rules---Customize Rules---ctrl+f 搜索 delay 这个值控制着request-trickle-delay请求的延迟时间和response-trickle-delay响应延迟时间来模拟弱网测试
如图
修改完成后,ctrl+s保存
2.修改完这个值保存后,并不能直接生效,还需要 使用这个规则
Rules----》Performance (性能)----》勾选 Simulate modem speeds(模拟调制解调器速度),使用这个规则
勾选之后就可以进行弱网测试了,通过访问自己的请求,查看响应结果是否符合要求
如何用fiddler设置断点进行测试呢?
1.方法一(个人常用):
2.方法二:
3.请求前断点场景演示,如图
结果显示
4.请求后断点演示
设置响应后断点,进行异常操作的页面显示:
如何进行查看单个资源的响应时间呢?
1.同样的是是定制规则:Rules---》Customize Rules
2.打开之后,复制一下代码,粘贴成功后,保存并重启Fiddler生效(代码不为本人原创)
//请求开始时间
public static BindUIColumn("Time Happen")//tab的名称,自己想改什么就改什么
function RecordTimeBegin(oS: Session){
var sResult = String.Empty;
if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest))
{
sResult = oS.Timers.ServerGotRequest.ToString();
}
return sResult;
}
function BeginRequestTime(oS: Session)
{
if (oS.Timers != null)
{
return oS.Timers.ClientBeginRequest.ToString();
}
return String.Empty;
}
//响应耗时
public static BindUIColumn("Time Taken")
function CalcTimingCol(oS: Session){
var sResult = String.Empty;
if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest))
{
sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).ToString();
//sResult = oS.Timers.ServerGotRequest.ToString();
}
return sResult;
}
3.再次访问请求时,就会显示请求开始时间和响应耗时
破解https的方法和手机抓包应用,可以私信小编“学习”进行获取