# **Fiddler简介**
**今日内容概要**
1. Fiddler 工作原理分析(应知)
2. Fiddler的先关设置(应会)
3. Fiddler的使用(应会)
1.Fiddler 工作原理分析(应知)
1.1 Fiddler是位于客户端和服务器端之间的HTTP代理, 它能够记录客户端和服务器之间的所有 HTTP(S)请求,可以针对特定的HTTP(S)请求,分析网络传输的数据,还可以设置断点、修改请求的数据和服务器返回的数据。
Fiddler在浏览器与服务器之间建立一个代理服务器,Fiddler工作于七层中的应用层,能够捕获通过的HTTP(S)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP(S)请求数据。数据传递流程大致如下:

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

2.1 下载完成后安装,选中checkbox, 弹出如下的对话框,点击"YES"


2.2 设置代理和端口号安装完成后打开 如下图设置Fiddler代理:


2.3默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler Tool->Fiddler Options->HTTPS tab

2.4抓取模式设置
from all processes : 抓取所有的 https 程序, 包括 本机 和 手机
from browsers only : 只抓取浏览器中的 https 请求
from non-browsers only : 只抓取除了浏览器之外的所有 https 请求
from remote clients only : 抓取远程的客户端的 https ,可以代表手机
开启手机 Https 抓包
如果只想抓取 手机上的所有 https 请求,就应该选中 from remote clients only 。

2.5 pc浏览器设置
在浏览器的最右侧,点击 三个点 图标,然后点击设置




2.6手机端配置
获取PC端IP地址

安卓手机设置代理
打开手机【设置】开启【wlan】-->连接路由器的wifi网络-->长按该wifi名称-->勾选【显示高级设置】,代理设置选择【手动】-->服务器处输入电脑ip,输入端口-->端口为:8888
连接后,fiddler就会显示手机上的相关浏览信息了
不同型号手机代理设置可能不太相同,基本都在设置中可找到(如魅族:长按wifi名称-->代理设置,进行连接设置;华为:长按wifi名称-->名称-->修改网络-->输入wifi密码,代理选择手动,输入服务器ip和端口号,点击连接即可)
2.ios手机设置代理
打开手机【设置】,无线局域网-->连接路由器的wifi网络-->点击网络名称-->HTTP代理,选择手动,服务器处输入电脑ip,输入端口后,fiddler连接成功
3.Fiddler的使用(应会)
3.1看看Fiddler的基本界面

3.2工具栏快捷按钮介绍

气泡图标:增加备注
点击一条会话,点击此按钮(或者右键Comment),弹出增加备注弹窗,点击OK后,备注就显示在Comment下
2.Replay:回放按钮,对捕捉到的某条会话进行回放操作
点击一条会话,点击Replay按钮(或者右键Replay),会话重新回放
3.X:清空监控面板
Remove all:清空所有
Images:过滤图片请求
Non-200s:过滤非200的请求
Non-Browser:过滤非浏览器的请求
Go:相当于调试Debug功能,请求断点的时候,让断点继续向下走
结合状态栏使用,点击底部状态栏,箭头朝上是请求发出时产生断点,箭头朝下是请求回来时产生断点
设置断点后,选中某条会话à使用Replay按钮,请求发送不出去,然后点击Go,请求成功
点击Find,Find Sessions弹窗-->Find 输入想要查找的Host名称,下面选择某种标示颜色-->点击Find Sessionsàfiddler页面中即标示查找的会话请求
Save:保存,便于清空会话后可从保存的文件中查看
Save把当前会话保存到一个地方-->清空所有会话-->左上角工具栏 点击File-->Recent Archives-->选择最近的文件,fiddler中即可显示之前所有会话
保存截图
保存后在fiddler底部出现一条图片会话,点击后右侧出现图片,可进行保存到桌面的操作
计时器
Browse:快速启动浏览器
选中一条会话,可以快速启动已安装的浏览器
Clear Cache:清除IE浏览器缓存
TextWizard:编码/解码文本内容
复制内容-->点击TextWizardàURLDeco
底部命令行工具

Capturing,控制捕获会话的快捷开关;
第二个是选择当前需要捕获的会话的来源程序,所有程序、浏览器、非浏览器、都不捕获选项。
第三个是会话request发送前的断点和response返回后且到浏览器前的断点,分别对应点一次,点两次该按钮(默认是空白即不设断点)
3.3如何开启/关闭 抓本机的包
如果需要抓取本机请求,有 3 中方式
方式 1
只需要启动程序并确保左下角为 Capturing状态 即可

方式 2
按快捷键 F12 进行切换
方式 3
File --> Capture Traffic 勾选。

扩展:
注意这个很有用,可以开启抓本机的包,也可以过滤本机的包。当手机开启了开启了代理,就可以把本机的包过滤掉,专注抓手机的包,此时会话列表中都是手机的包了。
3.4 Fiddler中查询会话
用快捷键Ctrl+F打开Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示。

3.5 主界面的功能区


栏图标说明

3.6 详情和数据统计板
inspector面板
针对每条http请求的具体统计(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)和数据包分析。如inspector面板下,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息:

ImageView标签
JPG 格式使用 ImageView 就可以看到图片,选择一条Content-Type是image/jpeg的回话,点击TextView

TextView 标签
HTML/JS/CSS 使用 TextView 可以看到响应的内容。选择一条Content-Type是text/html的回话,点击TextView

Raw标签
Raw标签可以查看响应报文和响应正文,但是不包含请求报文

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

Statistics面板
HTTP请求的性能和其他数据分析

我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,建立TCP/IP连接的时间消耗是8ms等等信息。
composer面板
可以模拟向相应的服务器发送数据的过程(不错,这就是灌水机器人的基本原理,也可以是部分http flood的一种方式)

- 第一章-测试理论
- 1.1软件测试的概念
- 1.2测试的分类
- 1.3软件测试的流程
- 1.4黑盒测试的方法
- 1.5AxureRP的使用
- 1.6xmind,截图工具的使用
- 1.7测试计划
- 1.8测试用例
- 1.9测试报告
- 2.0 正交表附录
- 第二章-缺陷管理工具
- 2.1缺陷的内容
- 2.2书写规范
- 2.3缺陷的优先级
- 2.4缺陷的生命周期
- 2.5缺陷管理工具简介
- 2.6缺陷管理工具部署及使用
- 2.7软件测试基础面试
- 第三章-数据库
- 3.1 SQL Server简介及安装
- 3.2 SQL Server示例数据库
- 3.3 SQL Server 加载示例
- 3.3 SQL Server 中的数据类型
- 3.4 SQL Server 数据定义语言DDL
- 3.5 SQL Server 修改数据
- 3.6 SQL Server 查询数据
- 3.7 SQL Server 连表
- 3.8 SQL Server 数据分组
- 3.9 SQL Server 子查询
- 3.10.1 SQL Server 集合操作符
- 3.10.2 SQL Server聚合函数
- 3.10.3 SQL Server 日期函数
- 3.10.4 SQL Server 字符串函数
- 第四章-linux
- 第五章-接口测试
- 5.1 postman 接口测试简介
- 5.2 postman 安装
- 5.3 postman 创建请求及发送请求
- 5.4 postman 菜单及设置
- 5.5 postman New菜单功能介绍
- 5.6 postman 常用的断言
- 5.7 请求前脚本
- 5.8 fiddler网络基础及fiddler简介
- 5.9 fiddler原理及使用
- 5.10 fiddler 实例
- 5.11 Ant 介绍
- 5.12 Ant 环境搭建
- 5.13 Jmeter 简介
- 5.14 Jmeter 环境搭建
- 5.15 jmeter 初识
- 5.16 jmeter SOAP/XML-RPC Request
- 5.17 jmeter HTTP请求
- 5.18 jmeter JDBC Request
- 5.19 jmeter元件的作用域与执行顺序
- 5.20 jmeter 定时器
- 5.21 jmeter 断言
- 5.22 jmeter 逻辑控制器
- 5.23 jmeter 常用函数
- 5.24 soapUI概述
- 5.25 SoapUI 断言
- 5.26 soapUI数据源及参数化
- 5.27 SoapUI模拟REST MockService
- 5.28 Jenkins的部署与配置
- 5.29 Jmeter+Ant+Jenkins 搭建
- 5.30 jmeter脚本录制
- 5.31 badboy常见的问题
- 第六章-性能测试
- 6.1 性能测试理论
- 6.2 性能测试及LoadRunner简介
- 第七章-UI自动化
- 第八章-Maven
- 第九章-测试框架
- 第十章-移动测试
- 10.1 移动测试点及测试流程
- 10.2 移动测试分类及特点
- 10.3 ADB命令及Monkey使用
- 10.4 MonkeyRunner使用
- 10.5 appium工作原理及使用
- 10.6 Appium环境搭建(Java版)
- 10.7 Appium常用函数(Java版)
- 10.8 Appium常用函数(Python版)
- 10.9 兼容性测试