详尽解说开发和测试都常常用到的神器Fiddler

1. Fiddler简介

Fiddler的官方网站:  www.fiddler2.com

Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料。Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展 你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。

Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具 。  

2. Fiddler的工作原理

Fiddler 是以代理web服务器的形式工作的,它使用代理地址: [127.0.0.1 ],端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

  

3. 同类的其他工具

同类的工具有: httpwatch、 firebug、 wireshark、charles .  

fidder的基本界面:

图片

4. Fiddler 如何捕获Firefox的会话

能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为127.0.0.1:8888就可以监听数据了。

点击: Tools -> Options,  在Options 对话框上点击Advanced tab - > network tab -> setting. 

  

5. Fiddler怎么对IPhone手机的数据进行抓包分析 

Fiddler绝对称得上是"抓包神器", Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。

Fiddler能捕获ISO设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备。  同理,也可以截获Andriod,Windows Phone的等设备发出的HTTP/HTTPS。

前提条件:安装Fiddler的机器,跟Iphone 在同一个网络里, 否则IPhone不能把HTTP发送到Fiddler的机器上来。

截获智能手机发出的HTTP包有什么用?

用处一: 手机软件程序员利用Fiddler,可以截获手机发出的HTTP包, 从而调试程序

用处二: 软件测试人员用于测试智能手机上的软件。

用处三: 可以用来在App应用商店中刷排名

如何在PC端配置?

1).配置Fiddler,  允许"远程连接"

打开Fiddler, Tools-> Fiddler Options 。(配置完后记得要重启Fiddler).

选中"Decrpt HTTPS traffic",    Fiddler就可以截获HTTPS请求

图片

选中"Allow remote computers to connect".  是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来,端口号默认"8888"。

图片

2).获取Fiddler所在机器的IP地址

图片

3).在iPhone上配置网络代理

图片

4).IPhone上安装Fiddler证书

这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步。

1. 首先要知道Fiddler所在的机器的IP地址: 假如我安装了Fiddler的机器的IP地址是:192.168.10.82

2. 打开IPhone 的Safari, 访问  http://192.168.10.82:8888, 点"FiddlerRoot certificate" 然后安装证书。

5).大功告成,开始抓包

现在IPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。 

实例:打开Safari,

输入http://www.baidu.com/.  看看Fiddler能否捕获。

是不是HTTP和HTTPS都截获到了?  你不但能截获, 还可以下断点,修改Request, 修改Response, Do what you want. 

用完了, 记得把IPhone上的Fiddler代理关闭, 以免IPhone上不了网。

如果遇到只能捕获HTTP,而不能捕获HTTPS的情况,可能可能是证书没有安装好。 解决办法是:

1. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone, 点”设置“->“通用”->"描述文件")

2. 安装上面的方法,重新安装Fiddler证书

6. 如何获取Https会话

在Tool菜单下选择Telerik Fidder Options,配置如下:

图片

弹出的其他警告框,统统选Yes.

  

7. QuickExec命令行的使用 

Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。

常见得命令有:

  help  打开官方的使用页面介绍,所有的命令都会列出来

  cls    清屏  (Ctrl+x 也可以清屏)

  select  选择会话的命令

  ?.png  用来选择png后缀的图片

  bpu  截获request 

图片

8. Fiddler中保存会话 

有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。  保存会话的步骤如下:

选择你想保存的会话,然后点击File->Save->Selected Sessions 

9. Fiddler中如何过滤会话 

每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话。Fiddler中有过滤的功能, 在右边的Filters tab中,里面有很多选项, 稍微研究下,就知道怎么用。

10.Fiddler中设置断点修改Requet 

Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法:

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->Before Requests(这种方法会中断所有的会话)

如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled

第二种:  在命令行中输入命令:  bpu www.baidu.com   (这种方法只会中断www.baidu.com)

如何消除命令呢?  在命令行中输入命令 bpu 

看个实例:

公司测试站点的登陆, 在IE中打开测试站点的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录:

用IE 打开登录界面 https://t31sp.qa.webex.com/mw3100/mywebex/login/login.do?siteurl=t31sp

打开Fiddler,  在命令行中输入bpu https://t31sp.qa.webex.com/mw3100/mywebex/login/login.do?siteurl=t31sp

修改post 参数,点击登录

Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如下图所示。

 结果是调试登录页面

图片

11. Fiddler中设置断点修改Response  

第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中断所有的会话)

如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled 

第二种:  在命令行中输入命令:  bpuafter www.baidu.com   (这种方法只会中断www.baidu.com)

如何消除命令呢?  在命令行中输入命令 bpuafter。 

具体用法和上节差不多,这里不再描述 

12. 如何分析Http请求

1).请求参数简介

Fiddler抓取到的每条http请求(每一条称为一个session),主要包含了请求的url,协议,状态码,body等信息,详细的字段含义如下图所示:

图片

图片

2). 请求图标的意义

图片

3).Statistics说明

图片

我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,建立TCP/IP连接的时间消耗是8ms等等信息。

4).Inspectors

Inspectors分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片,HTML/JS/CSS 使用 TextView 可以看到响应的内容。

图片

Raw标签可以查看原始的符合HTTP标准的请求和响应头。Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息。Cookies标签可以看到请求的cookie和响应的set-cookie头信息。

图片

WebForms用来查看Post参数,WebView用来查看response内容.

图片

13. Fiddler 还可以做安全测试工具 

篡改请求参数提交,查看是否生效,如果生效存在安全漏洞。

图片

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈开发与测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值