目录
一、抓包原理
二、Fiddler截获HTTP包用处
三、页面介绍
四、实际操作讲解
五、Fidder设置过滤(抓取指定服务器地址的数据)
六、web测试--弱网环境
七、Fiddler模拟接口测试(自定义请求)
Fiddler打断点修改接口请求数据
Fiddler打断点修改接口响应数据
八、默认fiider只能抓取http,Fiddler配置Https(PC端和手机端)
PC端
手机移动端
一、抓包原理
以代理服务器的形式工作,使用的代理地址:127.0.0.1,Fiddler介于客户端和服务器之间,客户端发起的所有请求和响应Fiddler都能够监听到。
会话的概念:一次请求和一次响应就是一个会话。
二、Fiddler截获HTTP包用处
用处一: 手机软件程序员利用Fiddler,可以截获手机发出的HTTP包, 从而调试程序。
用处二: 软件测试人员用于测试智能手机上的软件。
用处三: 可以用来在App应用商店中刷排名。
用处四: 截获了HTTP/HTTPS后,你想干什么就干什么,比如修改Request,或者Response(这个也是在基于 请求或者响应的规则上进行修改)
三、页面介绍
(1)菜单栏
File菜单
1、Capture Traffic:可以控制是否把Fiddler注册为系统代理。
2、New Viewer:打开一个新的fiddler窗口
3、Load Archive:用于重新加载之前捕获的以SAZ文件格式保存的数据包。
4、Save:支持以多种方式把数据包保存到文件中。
5、Import Sessions…:支持导入从其他工具捕获的数据包,也支持导入以其他格式存储的数据包。
6、Export Sessions…:把Fiddler捕捉到的回话以多种文件格式保存。
7、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler。
Edit菜单
1、Copy:复制会话。
2、Remove:删除会话。
3、Select All:选择所有会话。
4、Undelete:撤销删除会话。
5、Paste as Session把剪贴板上的内容粘贴成一个或多个模拟的会话。
6、Mark:选择一种颜色标记选中会话。
7、Unlock for Editing 解锁会话。
8、Find Session…打开Find Session窗口,搜索捕获到的数据包。
Rules菜单
1、Hide Image Request:隐藏图片回话。
2、Hide CONNECTS:隐藏连接通道回话。
3、Automatic Breakpoints:自动在[请求前]或[响应后]设置断点。Ignore Image触发器控制这些断点是否作用于图片请求。
4、Customize Rules…:打开Fiddler脚本编辑窗口。
5、Require Proxy Authentication:,要求客户端安装证书。该规则可以用于测试HTTP客户端,确保所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应码。
6、Apply GZIP Encoding:只要请求包含具有gzip标识的Accept-Encoding请求头,就会对所有响应使用GZIP HTTP进行压缩(图片请求除外)。
7、Remove All Encoding:删除所有请求和响应的HTTP内容编码和传输编码
8、Hide 304s:隐藏响应为HTTP/304 Not Modified状态的所有回话。
9、Request Japanese Content:选项会把所有请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端希望响应以日语形式发送。
10、User-Agents:把所有请求的User-Agent请求头设置或替换成指定值。
11、performance:模拟弱网测试速度。
Tools菜单
1、Options…:打开Fiddler选项窗口。
2、WinINET Options…打开IE的Internet属性窗口
3、Clear WinINET Cache:清空IE和其他应用中所使用的WinINET缓存中的所有文件。4、Clear WinINET Cookies:清空IE和其他应用中所发送的WinINET Cookie
5、TextWizard…:选项会启动TextWizard窗口,对文本进行编码和解码。
6、Compare Session:比较回话。
7、Reset Script:重置Fiddler脚本。
8、Sandbox:打开http://webdbg.com/sandbox/
9、View IE Cache:打开IE缓存窗口。
View菜单
1、Show Toolbar:控制Fiddler工具栏是否可见
2、Default Layout、Stacked Layout、Wide Layout三种界面布局
3、Minimize to Tray:最小化Fiddler到系统托盘(快捷键:CTRL+M )
4、Squish Session List:控制回话列表是否水平收缩。
5、AutoScroll Session list:添加新的回话时,自动滚动到回话列表底部
(4)工具栏详解:
1.备注功能
2.重新发送请求,快捷键:R键。
3.删除请求
4.当有请求前断点时,点击去发送请求。
5.流模式。(默认是缓冲模式)(当Fidder拿到远程的response后缓存起来一次响应给客户端还是以Strem的方式直接响应)
6.解码(有些请求是被编码的,点击解码后可以根据响应的编码格式自动解码)
7.保持回话的数量。
8.选择你想要抓包或者监听的程序
9.查找
10.保存所有会话,文件名以.saz为扩展名
11.截图
12.计时器
13.快捷的打开IE浏览器
14.清除IE缓存
15.文本的编码解码工具
16.分离面板
17.MSDN查询
18.本机的信息
(3)会话列表
(4)会话图标
四、实际操作讲解
4.1 Statistic标签
通过该页签,用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求传输的字节数。访问页面时选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行速度性能优化。关于HTTP请求的性能和其他数据分析,从中看出一些基本性能数据:如DNS解析的时间消耗是0ms,建立TCP/IP连接的时间消耗是31ms。同时访问数据是多少字节等信息。
4.2 Inspectors标签
提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。
1、ImageView标签
JPG 格式使用 ImageView 就可以看到图片,选择一条Content-Type是image/jpeg的会话,点击TextView。
2、TextView 标签
HTML/JS/CSS 使用 TextView 可以看到响应的内容。选择一条Content-Type是text/html的回话,点击TextView
3、AutoResponse页签:它可以抓取在线页面保存到本地进行调试,大大减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返回都是404的数据包读取本地文件作为返回内容。
4、composer页签:支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从回话列表中拖曳回话,把它放到composer选项卡中,当我们点击Execute按钮时则把请求发送到服务器端。
5、FiddlerScripts页签:打开Fiddler脚本编辑。
6、log页签:打印日志
7、Filters页签:过滤器可以对左侧的数据流列表进行过滤,我们可以标记、修改或隐藏某些特征的数据流。
8、Timeline页签:时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为X轴,用图表的形式展现出来,就形成了瀑布图。在左侧会话窗口点击一个或多个回话,Timeline 便会显示指定内容从服务端传输到客户端的时间。
五、Fidder设置过滤(抓取指定服务器地址的数据)
(一)
填写服务器地址多个ip之间需要用 ; 隔开,或者每个ip或域名单独写一行
Hosts 第二个下拉选说明:
No Host Filter 不设置hosts过滤
Hide The Following Hosts 隐藏过滤到的域名
Show Only The Following Hosts 只显示过滤到的域名
Flag The Following Hosts 标记过滤到的域名
类型过滤:图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉
.*\.(bmp|css|js|gif|ico|jp?g|png|swf|woff)
六、web测试--弱网环境
模拟低速网络环境,原理:客户端请求、响应的数据都会通过Fiddler。因此,可以通过延迟发送数据或接收数据来限制网络的上传速度和下载速度,从而达到限速的效果。
勾选Rules -> Performance -> Simulate Modem Speeds
:模拟调制解调器的速度
自定义限速:Rules -> Cutomize Rules
打开 CustomRules.js 文档
网速核心代码如下:
判断 m_SimulateModem 是否为 true,也就是是否设置了弱网模式。
如果为弱网,那么上传的网速为 300ms/KB,下载的网速为 150ms/KB
想要多快的网速,可以在这里计算并更改。
七、Fiddler模拟接口测试(自定义请求)
Fiddler打断点修改接口请求数据
第一步:设置Fiddler在请求发送之前拦截接口的请求数据
第二步:在浏览器中提交表单(第一步配置了的话,这里的表单数据不会立即提交,接口请求会被Fiddler拦截)
第三步:在Fiddler中修改请求的接口数据
第四步:在数据库中或者系统中查看提交的数据是否是修改过后的数据
第一步:设置Fiddler在请求发送之前拦截接口的请求数据
菜单栏:Rules -> Automatic Breakpoints -> Before Requests
第二步:在浏览器中提交表单(第一步配置了的话,这里的表单数据不会立即提交,接口请求会被Fiddler拦截)
第三步:查看拦截的请求并在Fiddler中修改请求的接口数据
拦截到的接口请求如下图:
修改接口数据并提交请求
提交完成之后,在响应头 Response Headers 中可以响应信息,200表示提交成功!
第四步:在数据库中或者系统中查看提交的数据是否是修改过后的数据
Fiddler打断点修改接口响应数据
打开开发者调试工具,分析有效URL,方便待会儿的响应数据篡改工作。
京东商城 :
把响应的数据拷贝出来。用 JSON在线工具解析
Fiddler开始修改响应数据:
第一步:打抓取响应数据断点
第二步:在Fiddler中找到核心会话(接口)
第三步:点击【Textview】修改需要的返回结果。
第四步:修改完成后,第二步中选项卡【Transformer】的编码格式要重新设置回去,重新压缩在发送。点击【Run to Completion】。
第五步:验证页面是否按照修改预期展示。
第一步:打抓取响应数据断点Rules -> Automatic BreakPoints -> After Response
浏览器中访问商城首页
第二步:在Fiddler中找到核心会话(接口)
只有核心URL不跳过,其它的URL都直接跳过就可以。
下面的图标,表示现在的请求的响应数据被拦截了,点击headers-run to completion这个直接放行。如图所示:
点击后面这个会话(和开发者调试时找到的有效URL),查看右侧 response 的选项卡【Transformer】,记住当前选中的编码格式,默认【chunked Transfer-Encoding】是选中的。
去掉勾之后,重新下方【HTTP Compression】选中在【None】上,意思是不压缩,点击【Run to Completion】。如果不点你的代码没办法修改是乱码的。修改完之后记得后面是要点回来的,重新压缩在发送。
第三步:点击【Textview】修改需要的返回结果。
第四步:修改完成后,第二步中选项卡【Transformer】的编码格式要重新设置回去,重新压缩在发送。点击【Run to Completion】。
第五步:验证页面是否按照修改预期展示。
八、默认fiider只能抓取http,Fiddler配置Https(PC端和手机端)
PC端
打开Fiddler Tool->Fiddler Options->HTTPS 。 (配置完后记得要重启Fiddler)
查看安装的证书:Actions—>open windows certificate Manager
导出证书,并浏览器导入Fiddler证书(Fiddler抓取Https请求)
打开Chrome设置 -> 高级 -> 隐私设置和安全性 -> 管理证书 -> 导入
完成证书导入即可,配置好成功之后,PC端Fiddler中就可以抓取到Https请求了。
手机移动端
设置网络代理。修改WLAN连接,填写IP地址和端口号,安装证书即可。