发布网友
共1个回答
热心网友
各位从事测试工作的小伙伴们对抓包工具Fiddler一定不会陌生。然而,许多人在使用过程中可能并未系统性地总结过其用法。以下是我总结的Fiddler的一些常用用法。
Web端抓包配置
首先,打开Fiddler,然后通过菜单栏选择“Tools -> Fiddler Options -> HTTPS配置”,配置完成后,请记得重启Fiddler。接下来,选择“Decrpt HTTPS traffic”,这样Fiddler就可以截获HTTPS请求。第一次截获HTTPS请求时,会弹出证书安装提示。如果没有弹出提示,可以勾选“Actions -> Trust Root Certificate”。若要监听的程序访问的HTTPS站点使用的是不可信的证书,请勾选“Ignore server certificate errors”。
证书安装提示
点击“是”,并留意红框中的内容。这里的“DO_NOT_TRUST_FiddlerRoot”就是证书的名称。然后点击“是”,最后点击“确定”,这样Fiddler证书就已经添加成功了。要查看证书,可以选择“Actions -> open windows certificate Manager”,可以看到证书已经添加进去了,证书名称就是之前提醒大家留意的“DO_NOT_TRUST_FiddlerRoot”。
手机端抓包配置
Fiddler监听端口默认是8888,你可以将其设置成任何你想要的端口。勾选“Allow remote computers to connect”,允许远程设备连接;为了减少干扰,可以去掉“Act as system proxy on startup”。
手机端(客户端)设置,先查看电脑的IP地址,确保手机和电脑在同一个局域网内。
Android手机上的配置
将Fiddler代理服务器的证书导到手机上才能抓这些APP的包。导入的过程如下:打开手机浏览器,在地址栏中输入代理服务器的IP和端口(即电脑的IP加Fiddler的端口),会看到一个Fiddler提供的页面,然后确定安装就好了。
打开WiFi设置页面,选择要连接的wifi,并且长按,在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动”代理服务器主机名设为PC的IP,代理服务器端口设为Fiddler上配置的端口8888,点“保存”。
只抓取手机包
点击下图位置,空白就是只抓取手机包。
Fiddler的使用视图功能区域
会话的概念:一次请求和一次响应就是一个会话。
Fiddler主界面
快捷功能区
快捷功能区中常用几项解释:
1、给会话添加备注信息
2、重新加载当前会话
3、删除会话选项
4、放行,和断点对应,后面详细讲解
5、响应模式。当Fiddler拿到远程的response后是缓存起来是一次响应给客户端还是以stream的方式直接响应
6、解码。有些请求是被编码的,点击这个按钮后可以根据响应的编码格式自动解码
7、查找会话
8、保存会话
9、截屏。截屏后,会以会话的方式返回一个截图主界面图标
APP弱网测试
修改参数模拟网速
利用Fiddler通过代理连接上手机之后,进入Fiddler -> Rules -> Customize Rules,点击弹出的CustomRules.js文件,找到m_SimulateModem。
确定设定的参数
设置完之后,再勾选Rules -> Performances -> Simulate Modem Speeds(注意停掉PC与手机上面上网的应用;把PC与手机上面上网的进程杀掉,如果上网的应用太多了,那网速肯定也会受到影响,这样出来的报告,就会不准确)
进行抓包
点击抓包数据中的一条记录,在右侧的Statistics中就会显示当前界面相应数据Bytes Sent是指发送的请求数,Bytes Received:返回的数据量,Overall Elapsed:总耗时
Fiddler过滤
在Fiddler主界面点击右侧的Filter,进入过滤设置页面
默认情况下,这个页面是灰色的,代表默认不过滤任何请求,现在我们勾选Use Filters。
一般常用的有三种过滤条件:
域名过滤
只显示特定域名的记录,最后点击右上角Actions -> Run Filterset now应用
. baidu.com表示所有的百度二级域名会话; baidu.com表示一级域名+二级域名的会话。
设置好了后一定要点击Actions生效
类型过滤
一般对各种图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉.*.(bmp|css|js|gif|ico|jp?g|png|swf|woff)
根据返回状态码
比如只想显示200的状态,其他的不显示
过虑的目的是将多余的网页请求和手机的其他链接影响到我们要抓起的数据;
所以我们需要排除其他无用的包,只关注我们指定的域名的请求包。