该文档写于 2018年下半年好像,工具的一些模块和细节上可能与最新版的Fiddler 有所出入,毕竟已经不用Fiddler页有段日子了…
一、Fiddler介绍与安装
Fiddler介绍
-
Fiddler是一款HTTP协议调试代理工具,它能够抓取记录本及所有HTTP(S)请求。 其运行机制其实就是本机127.0.0.1上监听8888端口的HTTP带理。 -
Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。 -
更多介绍见百度百科

Fiddler下载与安装
-
官网地址:http://www.telerik.com/fiddler -
先安装FiddlerXXX.exe -
再安装Fiddlercertmaker.exe (类似安全证书) -
然后就可以启动Fiddler了 -
启动之后的界面包括: 工具栏区、请求列表区、请求详情区、响应详情区、命令行区。

二、WEB端抓包
初次安装是不可以抓HTTPS的包的
开启/关闭抓包
快捷键:F12 左下角的开关

初次配置
点击工具栏区 Tools ---> Fiddle Options
选择 Fiddle Options 的 Connections
在 Connections 界面 选择
Captrue FTP requests、
Allow remote computers to connect、
Reuse client connections、
Reuse server connections
并输入端口号。
点击“OK”
这样我们就可以捕捉到大部分的请求。


验证是否可以正常抓包
启动IE浏览器 输入 www.baidu.com 观察左侧 请求列表区 是否有百度的请求 如果有则证明当前配置是成功的,可以正常抓取数据包了。
Fiddle 抓包,默认使用IE浏览器,是不需要做任何配置的, 假如想使用Firefox之类的浏览器抓包的话,不见得能够抓到,需要在Firefox配置代理。
Filter请求过滤_过滤&筛选页签
使用 Filter 可以帮助我们只显示指定的请求、不显示指定的请求(即Filter请求过滤)
启用Filter

只显示指定的请求

只显示内网的Hosts [使用频率较少]

只显示外网的Hosts [使用频率较少]

隐藏指定的Hosts
隐藏多个相关Hosts 的情况下,使用英文分号隔开,见下图。

只显示指定的多个Hosts
显示多个相关Hosts的情况下,使用英文分号隔开,见下图。

标记过滤到的域名

过滤指定url的css、js等
- 在
Hide if URL contains 输入 REGEX:\.(js|css|google|favicon\?.*)+ - 再点击
Actions ,选择 Run Filters now

查看响应
双击想要查看的请求,在 响应详情区 显示该请求的详细响应情况

如何抓包HTTPS请求
在菜单项 Toos —> Options —> HTTPS

勾选 CaptureHTTPS CONNECTs
勾选Decrypt HTTPS traffic
选择 ...from all processes
勾选 Ignore server certificate errors(unsafe)

需要注意的是,在安装完Fiddle后,一定再安装Fiddlercertmaker.exe(类似安全证书)
在勾选CaptureHTTPS CONNECTs 、
Decrypt HTTPS traffic、
Ignore server certificate errors(unsafe) 时,
弹出两个对话框,直接选择是/yes!
重点:配置完成后,一定要重启Fiddle! 一定要重启Fiddle!一定要重启Fiddle!一定要重启Fiddle!
三、移动app端抓包
前置条件
1、手机与电脑在同一局域网 2、完成fiddler的基本配置,参照WEB端抓包
手机配置代理(以小米8手机为例)
设置 —> WLAN —> 选择wifi —> 点击右边的箭头 —> 代理(选择手动) —> 主机名(输入电脑IP)—> 端口默认为8888 —> 点击右上角确定
完成上述操作后,Fiddler就可以抓取到手机APP的请求了。
用完之后记得关闭手机的代理设置!否则可能无法上网!
抓取移动APP端https
1、打开手机浏览器输入:http://本机IP地址:8888(端口号根据自己实际设置情况进行输入) 2、在打开的页面中找到FiddlereRoot certificate字样的超级链接,点击即可。
四、模拟低速网络(限速)
为什么要模拟网络限速?
日常我们的网络状况都比较好,有时候经常忽略在低速或者网络不好的情况下系统的页 面表现,而Fiddler就可以帮助我们限速进而达到模拟低速网络的状态。
自定义限速
根据自己的需求做一个限速的设置
点开 Rules ---> Customize Rules,在弹出的页面搜索“Delay sends by 300ms per KB uploaded”
将参数修改需要的值。(单位:毫秒)
代码解读:
发送数据每 KB 延迟 300 毫秒
接收数据每 KB 延迟 150 毫秒
修改完之后一定要保存 【 CTRL + S 】

启用限速功能
开启方法:
Rules ---> Performances ---> Simulate Modem Speeds
当 Simulate Modem Speeds 前面出现 “√”,即表示已经启用限速。
不用的时候记得关闭 限速的功能!
图片好像被我改变形了[抱歉] 

五、如何篡改请求数据
什么是篡改请求数据?
可以理解为针对请求数据的修改,修改完成之后发送至服务器端,然后根据修改之后的 请求数据给出一个响应。
此处以登录51cto为例进行讲解,登录地址为 http://home.51cto.com/index
大致步骤如下:
用IE打开上面的登录页面
然后在Fiddler的命令行中输入
dpu http://home.51cto.com/index
bpu + url :当访问url时,对该url 进行一个拦截,bpu 就相当于一个拦截命令(如果想取消该命令,则在命令行中再次输入bpu 即可)
输入错误的用户名和密码,点击登录
Fiddler能中断这次会话,选择被中断的会话,点击Inspectors下的WebForms,然后修改用户名密码都为正确的,然后点击Run to Completion即可。



六、利用auto responder替换源资源
-
关于Fiddler的AutoResponder 其实就是重定向功能,主要是进行会话的拦截,然后替 换原始资源的功能。 -
举个例子,某网站上有一个logo,这个时候如果想在不替换logo图片文件的前提下换 一个logo看看效果,那怎么办呢?AutoResponder就可以完成。 -
使用IE浏览器获取图片属性(需要注意的是 刷新是 使用 CTRL+F5 强制刷新),这样 会重新请求资源。








七、利用fiddler快速模拟mock
什么是mock?
可以理解为模拟一整套开发人员实现的逻辑接口 举例: 访问某URL,响应返回一个json串
本地新建一个txt文件,写一个json串



八、利用Composer发送自定义请求
Composer组件:小型、迷你型的接口测试工具,比较简易。 功能上不如postman



如何避免乱码



|