全网最全fiddler使用教程和fiddler如何抓包

顾翔老师的《软件测试技术实战设计、工具及管理》网上购买地址:javascript

https://item.jd.com/34295655089.htmlcss

《基于Django的电子商务网站》网上购买地址:html

https://item.jd.com/12082665.htmljava

店铺二维码:android

来源:http://www.51testing.comweb


  1、前言面试

  抓包工具备不少,好比经常使用的抓包工具Httpwatch,通用的强大的抓包工具Wireshark.为何使用fiddler?缘由以下:算法

  1.Wireshark是通用的抓包工具,可是比较庞大,对于只须要抓取http请求的应用来讲,彷佛有些大材小用。chrome

  2.Httpwatch也是比较经常使用的http抓包工具,可是只支持IE和firefox浏览器(其余浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,彷佛稍显无力windows

  而Fiddler是一个使用本地127.0.0.1:8888的HTTP代理,任何可以设置HTTP代理为127.0.0.1:8888的浏览器和应用程序均可以使用Fiddler。那么想要精通抓包,首先必须对协议比较了解,因此下面咱们首先了解一下协议。

  2、HTTP协议

  一、HTTP协议

  支持客户/服务器模式。简单快速,无链接,无状态。

  HTTP协议:默认端口:80

  HTTPS=HTTP协议+SSL安全传输协议:默认端口443

  二、HTTP协议请求详解

  请求行,请求头,空一行,请求正文

  Accept 指定客户端可以接收的内容类型

  Accept-Charset 浏览器能够接受的字符编码集。

  Accept-Encoding 指定浏览器能够支持的web服务器返回内容压缩编码类型。

  Accept-Language 浏览器可接受的语言

  Cookie HTTP请求发送时,会把保存在该请求域名下的全部cookie值一块儿发送给web服务器。

  Content-Length 请求的内容长度

  Content-Type 请求的与实体对应的MIME信息

  Date 请求发送的日期和时间

  Host 指定请求的服务器的域名和端口号

  Referer 先前网页的地址,当前请求网页紧随其后,即来路

  User-Agent 发出请求的用户信息

  三、HTTP协议响应详解

  响应行,响应头,空一行,响应正文

  响应头的信息和请求头很相似,这里不在累述!

  3、Fiddler简介和工做原理

  1.Fiddler简介

  Fiddler是位于客户端和服务器端的HTTP代理。

  目前最经常使用的http抓包工具之一。功能很是强大,是web调试的利器。

  工做中经常使用场景:接口调试、接口测试、线上环境调试、判断先后端Bug、mock测试、弱网测试。

  2.Fiddler下载和安装

  Fiddler官网下载地址:https://www.telerik.com/fiddler

  Fiddle证书生成器下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

  Fiddler安装注意事项:不要安装在有中文和特殊字符的目录

  安装注意事项:不要安装在有中文和特殊字符的目录

  3.Fiddler的工做原理:

  Fiddler是以代理web服务器的形式工做的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,

  关掉Fiddler、谷歌和IE浏览器的代理服务器会自动取消。若是Fiddler非正常退出,由于Fiddler没有自动注销,会形成网页没法访问。解决的办法是从新启动Fiddler。

  4、Fiddler六大块详解

  (1)Fiddler回话列表

  1.请求的ID编号、

  2.http响应状态码、

  3.会话使用的协议、

  4.请求发送到的服务器主机名、

  5.数据包在服务器中的路径和文件、

  6.响应body的字节数。

  7.响应头信息Cache-Control的值、

  八、响应头信息Content-Type的值、

  9.发起请求的本地windows进程、

  10.注释、

  11.自定义备注。

  (2)Fiddler功能页签

  Statistics页签:经过该页签,用户能够经过选择多个会话来获得这几个会话的总的信息统计,好比多个请求传输的字节数。访问页面时选择第一个请求和最后一个请求,可得到整个页面加载所消耗的整体时间。从条形图表中还能够分别出哪些请求耗时最多,从而对页面的访问进行速度性能优化。

  inspectors页签:它提供headers、textview、hexview,Raw等多种方式查看一条http请求的请求和响应,它分为上下两部分:上部分为请求展现,下部分为响应展现。

  AutoResponse页签:它能够抓取在线页面保存到本地进行调试,大大减小了在线调试的困难,可让咱们修改服务器端返回的数据,例如让返回都是404的数据包读取本地文件做为返回内容。

  composer页签:支持手动构建和发送HTTP,HTTPS和FTP请求,咱们还能够从回话列表中拖曳回话,把它放到composer选项卡中,当咱们点击Execute按钮时则把请求发送到服务器端。

  FiddlerScripts页签:打开Fiddler脚本编辑。

  log页签:打印日志

  Filters页签:过滤器能够对左侧的数据流列表进行过滤,咱们能够标记、修改或隐藏某些特征的数据流。

  Timeline页签:时间轴,也称为Fiddler的瀑布图,展现网络请求时间的功能。每一个网络请求都会经历域名解析、创建链接、发送请求、接受数据等阶段。把多个请求以时间做为X轴,用图表的形式展示出来,就造成了瀑布图。在左侧会话窗口点击一个或多个回话,Timeline便会显示指定内容从服务端传输到客户端的时间。

  (3)菜单栏

  File菜单

  一、CaptureTraffic:能够控制是否把Fiddler注册为系统代理。

  二、NewViewer:打开一个新的fiddler窗口

  三、LoadArchive:用于从新加载以前捕获的以SAZ文件格式保存的数据包。

  四、Save:支持以多种方式把数据包保存到文件中。

  五、ImportSessions...:支持导入从其余工具捕获的数据包,也支持导入以其余格式存储的数据包。

  六、ExportSessions...:把Fiddler捕捉到的回话以多种文件格式保存。

  七、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler。

  Edit菜单

  一、Copy:复制会话。

  二、Remove:删除会话。

  三、SelectAll:选择全部会话。

  四、Undelete:撤销删除会话。

  五、PasteasSession把剪贴板上的内容粘贴成一个或多个模拟的会话。

  六、Mark:选择一种颜色标记选中会话。

  七、UnlockforEditing解锁会话。

  八、FindSession...打开FindSession窗口,搜索捕获到的数据包。

  Rules菜单

  一、HideImageRequest:隐藏图片回话。

  二、HideCONNECTS:隐藏链接通道回话。

  三、AutomaticBreakpoints:自动在[请求前]或[响应后]设置断点。IgnoreImage触发器控制这些断点是否做用于图片请求。

  四、CustomizeRules...:打开Fiddler脚本编辑窗口。

  五、RequireProxyAuthentication:,要求客户端安装证书。该规则能够用于测试HTTP客户端,确保全部未提交Proxy-Authorization请求头的请求会返回HTTP/407响应码。

  六、ApplyGZIPEncoding:只要请求包含具备gzip标识的Accept-Encoding请求头,就会对全部响应使用GZIPHTTP进行压缩(图片请求除外)。

  七、RemoveAllEncoding:删除全部请求和响应的HTTP内容编码和传输编码

  八、Hide304s:隐藏响应为HTTP/304NotModified状态的全部回话。

  九、RequestJapaneseContent:选项会把全部请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端但愿响应以日语形式发送。

  十、User-Agents:把全部请求的User-Agent请求头设置或替换成指定值。

  十一、performance:模拟弱网测试速度。

  Tools菜单

  一、Options...:打开Fiddler选项窗口。

  二、WinINETOptions...打开IE的Internet属性窗口

  三、ClearWinINETCache:清空IE和其余应用中所使用的WinINET缓存中的全部文件。四、ClearWinINETCookies:清空IE和其余应用中所发送的WinINETCookie

  五、TextWizard...:选项会启动TextWizard窗口,对文本进行编码和解码。

  六、CompareSession:比较回话。

  七、ResetScript:重置Fiddler脚本。

  八、Sandbox:打开http://webdbg.com/sandbox/

  九、ViewIECache:打开IE缓存窗口。

  View菜单

  一、ShowToolbar:控制Fiddler工具栏是否可见

  二、DefaultLayout、StackedLayout、WideLayout三种界面布局

  三、MinimizetoTray:最小化Fiddler到系统托盘(快捷键:CTRL+M)

  四、SquishSessionList:控制回话列表是否水平收缩。

  五、AutoScrollSessionlist:添加新的回话时,自动滚动到回话列表底部

  (4)工具栏详解:

  1.备注功能

  2.从新发送请求,快捷键:R键。

  3.删除请求

  4.当有请求前断点时,点击去发送请求。

  5.流模式。(默认是缓冲模式)

  6.解码

  7.保持回话的数量。

  8.选择你想要抓包或者监听的程序

  9.查找

  10.保存全部会话,文件名以.saz为扩展名

  11.截图

  12.计时器

  13.快捷的打开IE浏览器

  14.清除IE缓存

  15.文本的编码解码工具

  16.分离面板

  17.MSDN查询

  18.本机的信息

  (5)状态栏详解:

  一、显示的Fiddler是否处于捕捉状态(开启/关闭状态),能够点击该区域切换。

  二、显示当前捕捉哪些进程。

  AllProcesses捕获全部进程的请求

  WebBrowsers?捕获Web浏览器的请求,应该特指IE

  Non-Browser?捕获非Web浏览器的请求

  HideAll???隐藏全部请求

  三、显示当前断点设置状态,经过鼠标点击切换。有三种:

  不设置断点

  全部请求在断点处被暂停

  全部响应在断点处被暂停

  4,显示当前共捕获了多少回话(如:300,表示共捕获了300个会话,如:10/300,表示当前选择10个会话,共捕获300个会话)。

  5,第五区块,描述当前状态。

  若是是刚打开Fiddler,会显示什么时间加载了CustomRules.js;若是选择了一个会话,会显示该会话的URL;若是在命令行输入一个命令,就会显示命令相关信息。

  (6)Fiddler命令行能够输入命令操做回话列表,常见命令有:

  help????打开官方的使用页面介绍,全部的命令都会列出来。

  cls?????清屏(Ctrl+x也能够清屏)

  select??选择全部相应类型的回话(如selectimage或select?css)。

  ?sometext查找字符串并高亮显示查找到的会话。

  >size??选择请求响应大小小于size字节的会话。

  =status/=method/@host查找状态、方法、主机相对应的会话

  1uit????退出fiddler

  bpafter?xxx中断URL包含指定字符的所有回话响应

  bps?xxx??中断HTTP响应状态为指定字符的所有回话响应。

  bpv?xxx??中断指定请求方式的所有回话响应

  bpm?xxx??中断指定请求方式的所有回话响应。等同于bpv?xxx

  bpu?xxx:??与bpafter相似。

  5、Fiddler过滤器

  选择Filters页签,勾选useFilters使用过滤器。

  Fiddler过滤指定域名

  1.第二个下拉框[-NoHostFilter-]选择[ShowOnlyTheFollowingHosts]只显示过滤的域名。

  2.如只监控百度,在下面的输入框里填上:www.baidu.com

  Fiddler过滤指定路径

  1.勾选RequestHeaders中的[showonlyifURLcontains]。

  2.勾选RequestHeaders中的【ShowonlyifURLcontains】输入正则:REGEX:(?insx).*\.?baidu.com/home.*

  只显示路径为:baidu.com/Home?的数据包。

  Fiddler过滤指定文件格式

  1.勾选RequestHeaders中的【Hideifurlcontains】过滤项,

  2.在后面输入:REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js)(\?.*)?$

  6、Fiddler对于WEB项目的抓包和改包项目实战

  打开Fidder会自动抓包,若是想要改包的话则在AutoResponder页签,以下图:若是你对此文有任何疑问,若是你也须要接口项目实战,若是你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:695458161,群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一块儿交流技术哦。

  7、Fiddler弱网测试

  Fiddler应用-弱网测试

  一、Rules->CustomizeRules打开Fiddle脚本编辑器(第二种也能够点击页签:FiddlerScript)。找到以下代码:


if(m_SimulateModem){  //Delaysendsby300msperKBuploaded.???上行每发送1KB延迟300ms  oSession["request-trickle-delay"]="300";  //Delayreceivesby150msperKBdownloaded.?下行每接收1KB延迟150ms  oSession["response-trickle-delay"]="150";  }


  1kByte/s=8kbit/s(通常简写为1kB/s=8kb/s)。

  上传带宽=(1*8/1000)/0.300≈0.027Mbps

  下载带宽=(1*8/1000)/0.150≈0.053Mbps

  修改其中的300ms和150ms用于设置上行和下行的延迟速度。并重启Fiddler使设置生效。

  好比你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=10ms,就改为10。

  网络取值的算法就是1000/速度=须要delay的时间(毫秒),好比50kb/s须要delay200毫秒来接收数据。

  二、Rules->Performance->勾上SimulateModemSpeeds开启模拟调制解调器速度。

  三、经过http://www.speedtest.cn/在线测试网速,看是否生效。访问浏览器查看加载速度。

  8、Fiddler抓取https协议的数据报文和移动端抓包测试

  一、Fiddler设置:菜单栏中选择tools->option,作以下两个设置:

  2.Fiddler应用-抓取基于https协议的数据报文。

  一、清理环境(首次安装Fiddler不须要清理)

  (1)卸载Fiddler软件以及根证书生成器Fiddler2CertMaker。

  (2)清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA目录下全部的RSA算法文件,此算法文件和非对称公钥密钥加密相关。

  (3)清除电脑上的根证书,WIN+R快捷键,输入:certmgr.msc,而后回车,查找fiddler证书,而后删除。

  (4)清除浏览器上的证书文件,以谷歌浏览器为例说明,在浏览器上输入:chrome://settings/,进入[高级]->[管理证书],有"受信任的根证书颁发机构"列表。此处须要仔细查找带有DO_NOT_TRUST_FiddlerRoot的字样,并删除。

  二、安装并配置Fiddler抓取Https数据报文。

  (1)下载并安装fiddler,官网下载地址:https://www.telerik.com/download/fiddler

  (2)下载并安装Fiddler证书生成器,官网下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

  (3)打开Fiddler,点击菜单栏中的Tools—>Options,选择HTTPS页签。勾选DecryptHTTPSCONNECTs(解密https链接),Fiddler证书生成器会自动判断本机是否安装Fiddler证书,没有则弹出以下证书安装页面。点击”Yes”按钮,在新弹出的窗口中再点击”肯定”后则Fiddler证书安装完成。接下来Fiddler就能够抓取Https的数据报文。

  3.Fiddler应用-抓取基于https协议的手机报文。

  一、Fiddler抓取手机端的https协议数据报文。

  (1)保持android手机和电脑在同一网段。如链接同一无线。

  (2)打开android手机的“设置”->“WLAN”,找到你要链接的无线网络并点击,弹出网络设置对话框,在“代理”处选择“手动”,在“主机名”输入框后面输入127.0.0.1,在“端口”输入框后面输入8888,而后点击“保存”按钮。

  (3)启动android设备中的浏览器访问百度首页或打开被测App,在fiddler中能够看到抓取到的数据报文了。


————————————————————

顾老师课程欢迎报名


软件安全测试

https://study.163.com/course/courseMain.htm?courseId=1209779852&share=2&shareId=480000002205486

接口自动化测试

https://study.163.com/course/courseMain.htm?courseId=1209794815&share=2&shareId=480000002205486

DevOps 和Jenkins之DevOps

https://study.163.com/course/courseMain.htm?courseId=1209817844&share=2&shareId=480000002205486

DevOps与Jenkins 2.0之Jenkins

https://study.163.com/course/courseMain.htm?courseId=1209819843&share=2&shareId=480000002205486

Selenium自动化测试

https://study.163.com/course/courseMain.htm?courseId=1209835807&share=2&shareId=480000002205486

性能测试第1季:性能测试基础知识

https://study.163.com/course/courseMain.htm?courseId=1209852815&share=2&shareId=480000002205486

性能测试第2季:LoadRunner12使用

https://study.163.com/course/courseMain.htm?courseId=1209980013&share=2&shareId=480000002205486

性能测试第3季:JMeter工具使用

https://study.163.com/course/courseMain.htm?courseId=1209903814&share=2&shareId=480000002205486

性能测试第4季:监控与调优

https://study.163.com/course/courseMain.htm?courseId=1209959801&share=2&shareId=480000002205486

Django入门

https://study.163.com/course/courseMain.htm?courseId=1210020806&share=2&shareId=480000002205486

啄木鸟顾老师漫谈软件测试

https://study.163.com/course/courseMain.htm?courseId=1209958326&share=2&shareId=480000002205486


本文分享自微信公众号 - 软件测试培训(iTestTrain)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索