fiddler是基于C#的HTTP抓包工具。html
fiddler的原理:git
fiddler是http代理服务器,它会抓取浏览器向服务器发送的HTTP请求,而后在将该请求发送到服务器。再获取从服务器返回的请求结果,将结果发送到浏览器。github
同类的工具备: httpwatch, firebug, wireshark浏览器

该图片来源于网络服务器
注意:fiddler抓包的时候,若是没有正常退出的话,可能会致使你抓取的网站没法正常使用
解决方法:重启fiddler,该网站就能正常使用了。
fiddler经常使用按钮:
一、按F12出现左下角的抓取图标,表示fiddler开始抓包了。
抓取到的页面URL信息连接不一样颜色表明的含义:
此图来源于网络网络
成功抓取页面后以下,点击左侧抓取到的URL连接信息,右侧会显示解析后的URL连接信息。

二、回放功能:Replay(Ctrl + R),选中一个请求点击replay就会再次发送被选中的请求。工具

三、如何设置显示工具栏?测试
点击View-->show Toolbar就会以下图显示工具栏网站

四、如何设置URL的连接颜色?spa

设置成功后以下图连接颜色显示为红色

五、如何设置备注?
选中连接,点击气泡图标,填入备注

设置备注后以下:

六、保存抓取的包

经常使用的fiddler功能有哪些呢?
一、如何抓取手机APP的数据?
二、如何建立假页面进行测试?
三、如何实现慢网速?
四、如何对抓取到的页面进行过滤?
下面咱们一个一个来进行讲解:
一、如何抓取手机APP的数据?
如何用fiddler工具抓取手机上的包?
一、必须在同一局域网内,设置手机代理转发,将手机上的数据流转发到咱们的fiddler的工具上,
由fiddler工具访问网络从而获取到咱们想要的内容。
设置代理的步骤:
二、以下图8888为(默认使用)端口号,勾选容许fiddler进行计算机远程链接
三、在手机上设置代理,先在Windows上运行cmd输入ipconfig查看ip,
我电脑和手机链接的是同一个路由器(wifi:lin)因此个人ip地址是看无线局域网适配器 无线网络链接的IPV4。
四、在手机上找到wifi设置代理为手动,填入IP地址和端口号
五、fiddler点击f12快捷方式,开始抓包。而后手机开始进行操做。
以下图为打开手机自带浏览器,输入www.imocc.com慕课网网站。
二、如何建立假页面进行测试?
什么是假页面呢?就是在抓取原有的页面到本地,对原有页面按测试要求进行修改。
用修改后的页面替换原有页面,对页面进行测试。
该功能通常用于在项目代码未更新,新的UI页面还未正常使用的状况下,不影响他人测试的状况下,使用抓包直接修改页面代码改成与新UI页面一致进行测试。
Fiddler中使用AutoResponder建立规则替换线上文件
咱们的目标是把“个人地盘-禅道”替换为“个人地盘1-禅道”
一、点击F12抓取包,而后在浏览器中输入禅道地址,进入禅道首页,再切换到测试模块,就会以下抓取到页面信息。而后点击F12结束抓包。


二、点击选择被抓取的页面 点击Inspectors-->点击解码-->点击View in Notepad
三、点击View in Notepad保存到记事本后,选择另存为将文件以htm格式保存在本地。

四、用Notepad++打开刚刚保存到本地的文件,我把“个人地盘-禅道”改成“个人地盘1-禅道”

五、咱们还时选择刚刚被抓取的页面,点击AutoResponder,勾选Enable Rules 和Unmatched requests passthrough,点击增长规则add Rule

六、点击选择替换的规则文件,而后咱们选择刚刚保存的fiddler文件

七、点击save保存规则
八、点击F12抓取包,而后在浏览器中输入禅道地址,进入禅道首页,而后就会发现“个人地盘-禅道”被替换为“个人地盘1-禅道”。这就表示成功了。
三、如何实现慢网速?
RULES下面performance-->Simulate Modem Speeds直接设置慢网速
设置后你再进行抓包,你会发现抓包的速度慢了不少
若是这个速度你仍是以为快,看不出来差异,那么你能够
点开Rules → Customize Rules 就会弹出一个CustomRules.js文件,修改该文件,加粗部分数值也可使实现慢网速。
注意:若是该文件没有自动弹出,那么能够去\Fiddler2\Scripts文件夹下进行寻找。
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] =
"300";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "
150"
}
四、如何对抓取到的页面进行过滤?
能够利用filters设置过滤,选择Use Filters-->选择Host模式,咱们选择Show the following Hosts-->
再填入要过滤出来的域名(多个域名能够用分隔号;进行分割)-->在选择Actions选项并选择Run Filterset Now。
注意:过滤页面填入是不要填入"http://"
过滤结果就以下图左边显示
参考资料: