fiddler是基于C#的HTTP抓包工具。
fiddler的原理:
fiddler是http代理服务器,它会抓取浏览器向服务器发送的HTTP请求,然后在将该请求发送到服务器。再获取从服务器返回的请求结果,将结果发送到浏览器。
同类的工具有: httpwatch, firebug, wireshark
该图片来源于网络
注意:fiddler抓包的时候,如果没有正常退出的话,可能会导致你抓取的网站无法正常使用
解决方法:重启fiddler,该网站就能正常使用了。
fiddler常用按钮:
1、按F12出现左下角的抓取图标,表示fiddler开始抓包了。
抓取到的页面URL信息链接不同颜色代表的含义:
此图来源于网络
成功抓取页面后如下,点击左侧抓取到的URL链接信息,右侧会显示解析后的URL链接信息。
2、回放功能:Replay(Ctrl + R),选中一个请求点击replay就会再次发送被选中的请求。
3、如何设置显示工具栏?
点击View-->show Toolbar就会如下图显示工具栏
4、如何设置URL的链接颜色?
设置成功后如下图链接颜色显示为红色
5、如何设置备注?
选中链接,点击气泡图标,填入备注
设置备注后如下:
6、保存抓取的包
常用的fiddler功能有哪些呢?
1、如何抓取手机APP的数据?
2、如何创建假页面进行测试?
3、如何实现慢网速?
4、如何对抓取到的页面进行过滤?
下面我们一个一个来进行讲解:
1、如何抓取手机APP的数据?
如何用fiddler工具抓取手机上的包?
1、必须在同一局域网内,设置手机代理转发,将手机上的数据流转发到我们的fiddler的工具上,
由fiddler工具访问网络从而获取到我们想要的内容。
设置代理的步骤:
2、如下图8888为(默认使用)端口号,勾选允许fiddler进行计算机远程连接
3、在手机上设置代理,先在Windows上运行cmd输入ipconfig查看ip,
我电脑和手机连接的是同一个路由器(wifi:lin)所以我的ip地址是看无线局域网适配器 无线网络连接的IPV4。
4、在手机上找到wifi设置代理为手动,填入IP地址和端口号
5、fiddler点击f12快捷方式,开始抓包。然后手机开始进行操作。
如下图为打开手机自带浏览器,输入www.imocc.com慕课网网站。
2、如何创建假页面进行测试?
什么是假页面呢?就是在抓取原有的页面到本地,对原有页面按测试要求进行修改。
用修改后的页面替换原有页面,对页面进行测试。
该功能一般用于在项目代码未更新,新的UI页面还未正常使用的情况下,不影响他人测试的情况下,使用抓包直接修改页面代码改为与新UI页面一致进行测试。
Fiddler中使用AutoResponder创建规则替换线上文件
我们的目标是把“我的地盘-禅道”替换为“我的地盘1-禅道”
1、点击F12抓取包,然后在浏览器中输入禅道地址,进入禅道首页,再切换到测试模块,就会如下抓取到页面信息。然后点击F12结束抓包。
2、点击选择被抓取的页面 点击Inspectors-->点击解码-->点击View in Notepad
3、点击View in Notepad保存到记事本后,选择另存为将文件以htm格式保存在本地。
4、用Notepad++打开刚刚保存到本地的文件,我把“我的地盘-禅道”改为“我的地盘1-禅道”
5、我们还时选择刚刚被抓取的页面,点击AutoResponder,勾选Enable Rules 和Unmatched requests passthrough,点击增加规则add Rule
6、点击选择替换的规则文件,然后我们选择刚刚保存的fiddler文件
7、点击save保存规则
8、点击F12抓取包,然后在浏览器中输入禅道地址,进入禅道首页,然后就会发现“我的地盘-禅道”被替换为“我的地盘1-禅道”。这就表示成功了。
3、如何实现慢网速?
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"
}
4、如何对抓取到的页面进行过滤?
可以利用filters设置过滤,选择Use Filters-->选择Host模式,我们选择Show the following Hosts-->
再填入要过滤出来的域名(多个域名可以用分隔号;进行分割)-->在选择Actions选项并选择Run Filterset Now。
注意:过滤页面填入是不要填入"http://"
过滤结果就如下图左边显示
参考资料: