fiddler 入门 (一)安装 、界面

简介

测试中,经常需要分析、修改网络请求,此时需要用到抓包工具。目前常用的抓包工具有Fiddler、Charles(MAC系统用的)和Wireshark。

Fiddler是服务端和客户端间的HTTP代理,能记录两者间的请求。Fiddler功能很强大,在测试中常使用的功能包括:对特定请求及其响应进行分析;设置断点修改请求参数与返回;实现网络限速;设定规则对请求进行mock。不再赘述Fiddler的下载和安装过程,具体可参考Fiddler的官方文档:http://docs.telerik.com/fiddler/。

抓包工具有很多,小到火狐的firebug,chrome的f12,  大到强大的抓包工具wireshark.为什么使用fiddler?原因如下:

  1. Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。
  2. Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。
  3. Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力,而Fiddler2 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。

fiddler与wireshark对比

Fiddler是在windows上运行的程序,专门用来捕获HTTP,HTTPS的。

wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。

总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。

安装相关

Fiddler最新版安装EnableLoopback Utility的工具是啥?

参考文档:EnableLoopback Utility – 让 UWP 应用也能使用系统代理[Windows]

微软在 Windows 8 以后就引入了 UWP 应用的概念,这些应用都运行在沙盘中,相比较来说确实是比较安全的,但又由于没法接触到系统,有些在系统里面的设置就没法沿用了,譬如网络。就像你本来科学上网好好的,用 UWP 就老是提示连接超时,这时候你需要 EnableLoopback Utility这款工具了。

EnableLoopback Utility 的原理很简单,为了安全起见,微软不允许 UWP 应用的流量指向本地,而这个工具则打破了这个限制,所以你就可以愉快地畅游互联网了。不过也要注意的是,并不是所有的应用都可以通过这个方法,不过也就只有那么一少部分应用不行而已。

一,Fiddler软件中EnableLoopback Utility的工具使用
1,从这里http://fiddler2.com/get-fiddler下载最新版的Fiddler并安装
.2,打开Fiddler,点击“Win8 Config”或者工具 - > Win8 Loopback Exemptions 。
如图3所示,这时会弹出一个新窗口“AppContainer回环豁免实用程序”,如果你要将所有地铁应用程序都使用豁免,点击“全部免除”,然后点击“保存更改”。
HTTPS:/ /blog.csdn .net / o3d_tech /条/信息/ 45619621

win10系统fiddler一启动提示:AppContainer Configuration是啥意思?

参考文档:Win10 App如何走代理?Win10应用代理教程

翻译成中文就是: Windows 使用了隔离技术, 阻止被 只有调用本地代理的传统软件和Edge浏览器 抓包。 请使用:工具条里面的WinConfig 去允许抓包。

在Win10中,如果是从Windows商店中安装的应用,那么它们连接网络的时候都是直连的,就算本地代理设置了PAC或者特定地址的系统代理,这些App也不会通过代理连接,能够通过代理连接的只有调用本地代理的传统软件和Edge浏览器。要如何解决这个问题?今天小编就来为大家分享一个让Win10 App也走代理的方法。那就要用到fiddler的这个工具啦~~~

 

jmeter相关插件的安装

插件作用:录制的保温,可以导出Jmeter文件的插件

该插件是由【黑夜小怪】制作的。黑夜小怪的博客地址是:http://www.cnblogs.com/heiyexiaoguai/p/5859200.html

抓包后,点击右键导出为jmx 脚本。
备注:jmeter设置代理抓包http,https都可以抓包。设置代理抓包,比badboy录制脚本好用。

 

界面构成介绍

官方帮助手册: https://docs.telerik.com/fiddler/KnowledgeBase/UIGuide

每个请求,都被官方称为一个session,方便区分,都有一个编号,但是和服务器的session不是一个概念

看看Fiddler的基本界面

Inspectors tab下有很多查看Request或者Response的消息。 其中Raw Tab可以查看完整的消息,Headers tab 只查看消息中的header. 如下图

Fiddler的 统计视图

通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。

选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化

session列表, 小图标的含义

 

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

对于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进行下载体验



作者:软测小生
链接:
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值