飞道的博客

【Fiddler】从零开始学习Fiddler

393人阅读  评论(0)

因为要开始学习接口测试,fiddler是一个很好的抓包工具而且免费好用,特开一贴来记录fiddler的学习历程。

Fiddler的工作原理


打开Fiddler之后会自动给电脑创建一个系统代理,默认端口为8888,。在客户端和服务器之间获得通讯的信息,并且以会话的形式呈现给我们。

Fiddler的代理模式

1.流模式(Streaming):

可以理解为一种实时通信的模式,请求之后实时返回。
更接近浏览器本身真实的行为。

2.缓冲模式(Buffering):

等所有的请求都到了之后再一起返回。
可以用来控制最后的服务器响应。

在实际的使用过程中,我们根据不同的场景需求来选择不同的代理模式。
在界面上我们使用一个按钮来切换这两种模式。Fiddler默认为缓冲模式。

Fiddler工具条按钮介绍

  • 给捕捉到的绘画增加一个备注,不太常用

  • 用于重播会话,快捷键是R。按住CTRL无条件补发,按住SHIFT多次补发。

  • 用来清空监控面板,右侧的小三角形可以选择条件清空。
    对应的中文版为

  • 这个要结合状态栏的断点使用,这里简单插播一下状态栏的图标介绍:
    右下角的状态栏中如果有这个图标的话表示正在捕获会话中,点击一下就停止捕获
    这个是指捕获的哪些进程,第一个是指全部进城,第二个是web浏览器,第三个是非浏览器,最后一个是隐藏所有。
    这个就是添加断点功能,就在上个图标后面小白框框内点击一下就有了。当对指定进程设置断点之后,点击,就会在断电进程停止,必须点击才能够继续捕获后面的会话。
    如果我再次点击,就会变成箭头向下的这个图标,这个意思是指客户端发送个已请求在服务器未返回请求时停止捕获,再点击继续。

  • 这个按钮就是切换模式的按钮,之前已经讲过了,这里略过。

  • 解码按钮,就是帮我们将http中的东西解压出来,能够帮助我们更好的查看数据。适用于下次捕获的会话。

  • 保持会话,保存的越多,内存占用越大

  • 这个按钮很重要,当这样显示的时候表示捕捉的所有进程的信息。当我只想捕捉某一个进程的信息时,我们将把心拖动到此进程的图标之上,例如只想捕获谷歌浏览器的会话,就把靶心拖动到下方谷歌浏览器的图标上面,成功后按钮变成就说明已经锁定了这个进程。辣么后面再捕获的进程就不会有其他的会话了。

  • 查找功能,在会话比较多的时候点击这个可以查找指定会话并标记颜色,点开之后是这个样子的
    中文版就是这张图

    当我们标记之后想取消标记怎么办,点击这个按钮就可以了。

  • 保存按钮,可以保存为有密码的saz文件,也可以是没有密码的。

  • 五秒钟之后会把截图保存下来

  • 计时器,点击一下开始,再单击一下停止,第三下清零或右键清零。

  • 可以快速启动下拉菜单中的浏览器

  • 快速清除缓存,一般在抓包之前要做的事情

  • 文字编解码,点开后选择解码方式就可以编解码了

  • 将右侧面板变成浮窗,关闭浮窗之后就变回原样。

  • MSDN首座和帮助按钮,不常用到。

如何使用Fiddler抓取https包

因为证书问题的解决方案

有时候我们抓不到包是由于证书的问题,所以先要给fiddler支持https的捕获和解析功能。具体步骤如下图:


这样我们就获得了fiddler的证书,然后我们将这个证书导入到浏览器中(这里以火狐浏览器为例)。
在浏览器中找到查看证书:


然后再导入:

然后我们将fiddler和火狐浏览器重启一下看能否抓包。

如何使用Fiddler抓取手机包

  • 首先打开fiddler,Tools>>Options,在Connections和HTTPS中分别进行设置:

    然后重启fiddler使修改生效。

  • 使用WIN+R,输入cmd打开命令提示符,输入ipconfig查看本机IPv4的地址,记住它。

  • 在手机中设置。要求要在同一局域网下,就是都连接同一个wifi就可以。在这里我使用夜神模拟器进行示范:
    要给模拟器设置锁屏密码,然后点开设置>>WLAN>>长按连接的wifi,然后进行如下操作:

    操作完成之后点击保存,这时候我们就已经可以抓到http的包了,如果需要抓取https的包,还需要进行下一步。

  • 需要给手机安装fiddler的证书,打开手机浏览器,输入本机地址和端口号,建议使用本地浏览器打开:

    此处容易出现No root certificate was found,Have you enabled HTTPS traffic decryption in Fiddler yet?这个问题,解决方法就是在本机命令提示符中进入到Fiddler的安装目录中,并运行下面这一段话
    makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012

    然后就能够下载证书啦。
    下载证书之后本地浏览器是默认打开的,将证书名称改了之后就直接访问浏览器进行抓包操作。

    经过试验之后发现抓不到模拟器的包???所以我们在手机上进行之前的操作,并且在手机上打开浏览器。
    这时候我们可以看到已经抓到了https包:

    打开某个会话我们可以看到这个字段这个标记头表示手机端 。

Fiddler状态栏详解

之前有介绍了一丢丢状态栏按钮,这里再详细介绍一下其他的按钮。

  • 这个位于左下角长长的一条是控制台,可以在里面输入命令行。比如输入help就可以打开使用说明。
  • 这是点击会话的详情。

使用fiddler的过滤条件

1. 域名过滤

只显示特定域名的记录:

设置好了后一定要点击Actions生效;

2.类型过滤

一般对各种图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉,需要过滤多少自己直接加入就好了。

 .*\.(bmp|css|js|gif|ico|jp?g|png|swf|woff) 

3.根据返回状态码

比如只想显示200的状态,其他的不显示:

如果本篇博客对你来说有用的话,请点个赞吧ヾ(◍°∇°◍)ノ゙

最后总结一下:
如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:593462778,群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

作者:暗潮汹涌
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。


转载:https://blog.csdn.net/qq_34659777/article/details/82665183
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场