Fiddler详解
Posted Gale测试圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fiddler详解相关的知识,希望对你有一定的参考价值。
一、Fiddler概述
在测试过程中,经常需要对客户端数据进定位问题,这时就可以借助Fiddler来进行数据抓取,并验证在整个业务过程中数据是否正确。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。
二、Fiddler工作原理
Fiddler在浏览器和服务器之间建立了一个代理服务器,也可理解为中转站。数据通过客户端到达Fiddler,Fiddler将数据请求到web服务器,而同样web服务器将响应数据返回给Fiddler,Fiddler将数据传输给客户端,在此期间Fiddler就可获取到所有通过该代理服务器上的所有HTTP(S)请求,也就可以在期间进行一些数据修改等操作。流程图如下所示:
代理过程(已绑定Fiddler的代理服务):
1. 客户端发起HTTP(S)请求,请求到达的服务器是Fiddler
2. Fiddler收到客户端发起的请求,根据请求相关信息,将数据转发(请求)到对应的Web服务器上
3. 服务端接受到Fiddler的请求后,根据业务处理返回对应的响应数据
4. Fiddler接收到来自Web服务器返回的业务数据,再将这些报文数据转发给客户端
测试阶段可进行的操作:
1. 进行数据获取,验证其正确性
2. 进行数据(输入和输出数据)修改,验证其安全性
三、Fiddler手机抓包流程
2. 基本配置
如果只是需要监听本机浏览器HTTP数据包的话不需要做任何额外配置,打开Fiddler即可直接使用。一般我们需要监听远程终端设备的网络请求,需要做以下配置。打开Fiddler,在菜单栏中选择Tools->Options->Connections。输入监听端口(默认是8888),选择Allow remotecomputers to connect,点击确认然后重启Fiddler。
如果你本机较多服务器开启,可以在设置Fiddler监听端口前,查询一下你要设置的端口是否已经被使用了。Windows上命令:netstat -ano,找到合适的监听端口进行使用。
在菜单栏中选择Tools->Options->HTTPS,设置监听HTTPS协议,如下设置:
3. 手机端配置
找到与代理主机同一局域网的WIFI进行连接,并在WIFI的代理设置中配置上Online对应的IP和Fiddler的监听端口,如下图所示:
因为我们要抓取HTTPS协议,必须要有CA证书才可以,否则HTTPS请求时系统会认为当前请求不合法,拒绝与之连接。处理该问题时,我们可以在手机上设置了代理后,在浏览器中输入:IP:监听端口,如上例子中显示输入:192.168.3.191:8889,结果如下图所示,点击图片中的FiddlerRoot certificate进行安装即可。如果一直发现无法请求该链接,那么请检查一下当前代理主机是否还开启了另外的代理服务(一般为翻墙软件),可以检查IE浏览器中的局域网设置,打开路径:IE-internet选项-连接-局域网设置,如果有使用自动配置脚本的话,将它的勾选去掉即可。
4. 数据流
查看一个从手机端发起通过Fiddler的请求,其数据可以由以下几个地方可见。
这样的话,我们就可以获取到手机终端的一些请求,并根据我们的需求进行相对于的测试了。
四、扩展-抓取HTTPS协议原理
众所周知,HTTP协议传输是经过加密的,如果需要进行抓取的话,必须需要有CA证书,所以在抓取HTTPS协议的过程中需要增加一个CA证书的配置。配置的话在第三步流程中有介绍,先设置HTTPS的捕捉,再根据主机和监听端口下载一个CA证书。
在了解抓取HTTPS协议原理之前,要明白HTTPS协议是如何进行连接的,如下图所示:
在明白HTTPS连接原理之后,对Fiddler为什么可以抓取就可以较为清晰了。
五、总结
Fiddler能让我们快速分析定位问题,并且能对网络原理更为熟悉,如果你的工作中需要这个部分,或者暂时还没有用到,可以应用起来,Fiddler是完全免费的喔~
如若对你们有所帮助,帮忙推广一下,点个再看,谢谢支持!
以上是关于Fiddler详解的主要内容,如果未能解决你的问题,请参考以下文章
Fiddler工具 — Fiddler检查器(Inspectors)详解