Fiddler使用:菜单功能/Host配置/请求伪造接口调试

公号:软测小生(ruancexiaosheng)
对于Fiddler上面的每个按钮的功能的话,其实只要鼠标停留在按钮上面就会出现英文描述的功能,今天在来实际动手过一遍所有的功能,并记录一下。

image

第一个小气泡:增加备注,点击气泡即可对下面捕捉到的会话增加备注(一般很少使用)

Replay回放按钮:比较常用,捕捉到一个会话之后想回放这个会话,就可以点这个按钮。

remove按钮:清空监控面板,下面还附有很多remove规则,可以按照你的需要选择相应的remove内容,比如Remove all 清除所有; Images是清除所有图片请求等等。

go按钮:用于断点调试Debug,类似于Eclipse调试代码的F6,下图红圈中的位置
1、点击一下会出现一个蓝色向上的箭头,此时的意思是截获发送request的时会有一个断点,可以点击go按钮继续往下走
2、再点击一下会出现一个向下的绿色箭头,此时的意思是截获request返回时会有一个断点

Stream按钮:fiddler代理模式流模式与缓冲模式之间切换,默认是缓冲模式,按下即为流模式。
缓冲模式:当一个HTTP请求的所有内容全部返回给Fiddler时候才在界面展示出来;
流模式:Fiddler实时展示返回的内容

Decode按钮:解压请求,将HTTP返回的内容全部解压出来,方便查看。

Keep sessions: 保持sessions会话,默认为保持全部,按照你需求的大小,电脑内存的大小选择保持多少会话,毕竟越多约占用电脑资源。

靶心Any Process: 过滤请求,可以指定只抓取某个也面或者浏览器的请求,操作方式:按住靶心按钮,出现十字状,按住鼠标拖动到目标浏览器界面,可看到浏览器界面变成黑色,方开鼠标后按钮处会出现你只捕获的目标进程编号。

Find 查找功能:在众多会话中查找你需要的信息,上面有一些辅助条件,比如选择高亮颜色之类的。

Save 保存按钮:将所有的请求保存到saz文件下,可以再次打开使用。

照相机:保存截图

Browes: 快速启动浏览器按钮,下拉菜单里面有各种本机装有的浏览器,比如IE,Chrome,Firefox等

Clear Cache:清除浏览器缓存

TextWizard: 编码/解码问本内容,比如URL关键字解码/编码,Base64/JS String之类的解码,编码

Tearoff: 分离面板,将左边的会话面板与右边的面板分离,浮窗,取消分离的话是直接关闭分离出来的面板即可

控制台:可以在其中输入命令行,比如输入help,就会在浏览器中打开常用的命令

image

Capturing:控制Fiddler是否在工作,显示Capturing表示工作,空白表示不截取任何请求。

image

Web Browsers:过滤浏览器会话。其右边的数字是当前展示的所有会话数量。

控制面板使用:

Statistics: 一个会话的数据统计信息,显示一些性能指标(时间),可以为优化提供依据
RTT:请求往返时间,是衡量请求性能的重要指标,还有一个全世界范围内的平均数据
show chart:数据可视化处理

Inspectors: 对请求进行解包,可以查看相应的请求和响应信息

AutoResponder: 文件代理,可以把请求的资源用本地文件代理掉,方便调试线上bug文件,具体如下: 线上bug定位Hotfix bug:(只指定某一个连接文件到指定的IP或者服务器)。
比如:发现线上某个文件出现bug时,现在要将此文件映射到本地环境(或者是非线上开发测试环境),做代码的修改之后快速的查看效果是否与预期一致,是否生效,是否能修复bug。
1、将请求拖入到AutoResponder中,可以看到最下方有一个EXAT,叫精准匹配(也支持正则表达式模糊匹配);

2、在下方可以选择本地(非线上测试开发环境)文件路径来进行测试查看结果,当然也可以选择其他的一些响应,比如200,500等状态。

Composer: 前后端接口连调,可以用来伪造请求--需要后端接口:修改里面的数据参数,伪造请求,再访问查看效果。

**Log: **记录日志
Timeline:网站性能分析

HOST配置志向非线上环境进行开发测试:(将所有的文件映射到指定的IP或者服务器下面)
Tools-->Hosts,勾上enable,然后再下方配置一个目标IP地址+host域名(可用的),save,再来发送请求Replay的时候会指向新配置的IP地址,即可查看效果。

image

查看结果之后要关闭代理功能有两种方式1、取消之前的enable,save;2、直接退出Fiddler,不用去更改电脑system中的host文件。

Fiddler不显示ServerIP:

1、点击菜单Rules-->Customize Rules 2、在CustomRules.js文件里Ctrl+F查找字符串“static function Main()”
添加一行代码即可显示ServerIP即可:

[plain] view plaincopy

<embed id="ZeroClipboardMovie_1" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");

Fiddler打开截获HTTPS请求后无法访问网页:
1、现在大多数网站都使用了HTTPS,那么如何截获呢?fiddler-->Tools-->OPTIONS,-->HTTPS,勾选上Decrypt HTTPS traffic即可;

image

2、但是发现这样就不能正常打开网页,是因为代理端口设置为了8888,在Options-->Connections中可以查看,只要将其修改为8080即可;
image

3、很多时候会提示这个端口被java占用:打开cmd,输入 taskkill /F /IM即可kill掉占用的进程,如与其它占用,响应找到占用并关闭即可。

image

Fiddler请求模拟,前后端接口调试(前端页面没有完成的情况下)
请求的伪造:可以伪造Cookie,进行登录
前后端连调:Composer -> 选择请求方式 GET -> copy 地址 参数-> excuete
然后查看返回数据参数。
POST参数一般要放到RequestBody中

Fiddler网络限速
开发在测试网站在网速比较差的情况下的一个性能情况,基于Fiddler script插件。
小栗子:
点击fiddlerScript 在代码里找到onBeforeRequest,加入下面代码:

Static function OnBeforeRequest

[csharp] view plaincopy

<embed id="ZeroClipboardMovie_2" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. oSession["request-trickle-delay"]="3000";//请求阶段延迟3秒
  2. oSession["response-trickle-delay"]="3000";//响应阶段延迟3秒

Fiddler代码格式化插件

官网下载插件

JavaScript Formatter 代码格式化插件
Fiddler Add-ons 插件:javaScript formatter -> js文件右击 -> 选择 make javascript pretty -> textview / syntaxview 代码全部高亮显示

traffic differ (对比两个不同的对话): 直接拖进两个不同的请求,会显示完整的对比数据 -> 可以用来对比优化前后网站之间的不同

第三方插件:比如 willow -> 快速管理host列表 完全可视化 http代理插件
可视化限速
因为没有开源,可以到http://pan.baidu.com/s/1mgocpBi进行下载体验

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • 简介 Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流...
    daoyidao阅读 143,530评论 15 169
  • 简介 Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流...
    JxMY阅读 1,472评论 0 11
  • Fiddler_官方网站Fiddler_官方文档Fiddler_官方视频Fiddler_官方插件1、Filddle...
    52Alice阅读 7,709评论 0 10
  • 原因 在现实项目中,由于开发的经常调试,接口的不稳定,和接口文档的不及时更新,我们选择做接口测试,更多的需要自己抓...
    我为峰2014阅读 3,070评论 1 5
  • 查看手册,我们看到,jquery写jsonp有两种方式: 1$.ajax的方式 2$.getJSON的方式 先来看...
    b12af9baadf4阅读 2,843评论 0 9