Fiddler是 微软推出的一款很强大很好用的 web调试工具。它能 记录所有客户端和服务器的HTTP和HTTPS请求,允许你监视,设置断点,甚至修改输入输出数据。 Fiddler还包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。 本文将主要介绍Fiddler在抓取 移动终端数据包方面的应用。 Fiddler的优势和局限性 与另一款常用的 手机端抓包工具Wireshark相比,Fiddler有很多类似的地方。譬如:适用于各种有wifi功能的终端(手机、平板等),且设备均无需root或越狱;均使用PC端来获取和展示所抓的数据包。不同之处在于,Wireshark是通过使被测终端连接作为wifi热点的PC无线网络来抓取数据包,而Fiddler是通过将PC与被测终端置于同一局域网(通常是同一个无线网络)下并设置被测终端网络代理来抓取数据包。 相较于Wireshark,Fiddler的优势在于可以拦截发出或者收到的HTTP/HTTPS包,并可以修改其Request和Response数据。然而,Fiddler的局限性也非常明显,它只能用于抓取HTTP和HTTPS包,而不能抓取其他类型的网络包。 Fiddler工作原理 从上图可以看出,Fiddler使用代理方式,让客户端所有数据流都发给它,然后转发给目标 server,目标server的回包发给Fiddler,再由Fiddler转发给客户端。所以不管是Request还是Respone数据包都经过了Fiddler,Fiddler能进行截获和分析。正是它这样架构优势,才有其他工具无法做到的强大功能,只要是支持HTTP代理配置的终端,均支持抓包。 Fiddler工作于OSI七层网络模型中的应用层,使用代理地址:127.0.0.1, 端口:8888。当启动Fiddler时会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。 Fiddler抓取手机端数据包的设置方法 首先,需要确保安装Fiddler的电脑与待抓包手机在同一局域网内(通常是连同一个wifi),因为要将手机的代理指向PC端,不能互相访问是不行的。 使用Fiddler抓取手机端数据包的步骤如下: 1) Fiddler开启远程连接。Fiddler主菜单-->Tools-->Fiddler Options-->Connections Tab页,勾选Allow remote computers to connect 2) 重启Fiddler 3) 获取PC的IP地址 4) 设置手机代理,指向PC的IP地址,端口号填Fiddler默认的8888,保存即完成了代理的设置,此时就可以用Fiddler去抓取手机端的HTTP数据包了 Fiddler的基本界面 Fiddler界面布局如下: Inspectors tab下有很多查看Request或Response的消息。其中Raw Tab可以查看完整消息,Headers Tab只查看消息中的Header。 Fiddler中设置断点 设置断点修改Request 设置断点有如下两种方法: 方法一: 1) 打开Fiddler,点击Rules 2) Automatic Breakpoints 3) Before Requests 这种方法缺点在于会中断所有的会话。 其取消方法为:Rules-->Automatic Breakpoints-->Disabled。 方法二: 1) 命令行输入命令:bpu msdkdev.qq.com 2) 这种方法只会中断向msdkdev.qq.com发送的Request 其取消方法为:命令行输入bpu。 设置断点修改Response 版权声明:本文出自《测试专刊-腾讯WeTest教你玩转手游测试》。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
|