Fiddler是强大好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。
1.基本介绍
Fiddler的官方网站: https://www.telerik.com/fiddler/fiddler-classic
Fiddler是用C#编写的一个免费的HTTP/HTTPS网络调试器。英语中Fiddler是小提琴的意思,Fiddler Web Debugger就像小提琴一样,可以让前端开发变得更加优雅。
Fiddler是以代理服务器的方式,监听系统的网络数据流动。运行Fiddler后,就会在本地打开8888端口,网络数据流通过Fiddler进行中转时,我们可以监视HTTP/HTTPS数据流的记录,并加以分析,甚至还可以修改发送和接收的数据。Fiddler还提供了清除谷歌缓存、请求构造器、文本转换工具等等一系列工具,对前端开发工作很有价值。
1.1主要功能
- 分析页面性能
- 分析http请求/响应数据
- 设置断点,调试线上错误
- 伪造数据请求,调试数据接口
1.2工作原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。
1.3Fiddler如何捕获浏览器会话
能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认将系统代理设为了127.0.0.1:8888,可以监听数据。
1.4Fiddler如何捕获HTTPS会话
默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler 工具->选项->HTTPS 标签->勾选抓取https连接->点击操作->信任跟证书。
选中信任跟证书, 弹出如下的对话框,点击"YES"
2.Fiddler的基本界面
探测器下有很多查看请求或者返回的消息。 其中原始可以查看完整的消息,标头只查看消息中的header. 如下图
3.Fiddler的HTTP统计图
通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用统计页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。
4.QuickExec命令行的使用
Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。
常见得命令有
- help 打开官方的使用页面介绍,所有的命令都会列出来
- cls 清屏 (Ctrl+x 也可以清屏)
- select 选择会话的命令
- ?.png 用来选择png后缀的图片
- bpu 截获request
5.Fiddler中设置断点修改request
Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改接口请求的任何信息包括host, cook谷歌或者表单中的数据。设置断点有两种方法
第一种:打开Fiddler 点击规则->自动断点->之前请求(这种方法会中断所有的会话)
如何消除命令呢?点击规则->自动断点->禁用
第二种:在命令行中输入命令: bpu www.baidu.com(这种方法只会中断www.baidu.com)
如何消除命令呢?在命令行中输入命令 bpu
6.Fiddler中设置断点修改Response
当然Fiddler中也能修改接口响应内容
第一种:打开Fiddler 点击规则->自动断点->之后请求(这种方法会中断所有的会话)
如何消除命令呢?点击规则->自动断点->禁用
第二种:在命令行中输入命令:bpafter www.baidu.com(这种方法只会中断www.baidu.com)
如何消除命令呢?在命令行中输入命令 bpafter
7.Fiddler中创建自动响应规则
Fiddler 的自动响应 标签允许你从本地返回文件,而不用将http request 发送到服务器上。
8.Fiddler中如何过滤会话
每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话. Fiddler中有过滤的功能, 在右边的过滤器标签中,里面有很多选项, 稍微研究下,就知道怎么用。
9.Fiddler中会话比较功能
选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了 (当然需要你安装WinDiff)
- 下载windiff软件; https://www.grigsoft.com/download-windiff.htm
- 在fiddler中设置compare的工具为windiff。启动fiddler,在菜单栏中点击tools——>options,在tools选项卡中选择windiff路径
10.Fiddler中提供的编码小工具
点击Fiddler 工具栏上的文本向导, 这个工具可以编码和解码
11.Fiddler中查询会话
用快捷键Ctrl+F 打开 Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示
12.Fiddler中保存会话
保存会话
有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。保存会话的步骤如下:选择你想保存的会话,然后点击文件->保存->所选会话
导出jmeter脚本
快速实现单接口脚本,将fiddler会话,保存成jmeter脚本,步骤如下:
- 下载JmeterExporter.dll、JmeterExporter.pdb文件到fiddler安装路径\FiddlerClassic\ImportExport目录下
- 选择你想保存的会话,然后点击文件->导出会话->所选会话->导出格式选择jmeter
13.Response 是乱码的
有时候我们看到Response中的HTML是乱码的, 这是因为HTML被压缩了, 我们可以通过两种方法去解压缩。
1.点击接口响应内容栏上方的"对响应体进行编码。单击解码。"
2. 选中工具栏中的"解码"。 这样会自动解压缩。