一、使用fiddler对手机抓包
1.电脑端设置:
打开安装好的Fiddler,在菜单栏里选择Tools->Options,打开Fiddler选项对话框,再选择Connections标签页,我们需要代理设置端口号和Allow remote computers to connect选项:
这个端口号是Fiddler代理服务的端口号,在后续设置代理时会用到,所有的代理流量都是通过这个端口发送给Fiddler的,如果在公司测试时发现别人代理到了自己的机器而造成了多台设备的流量交叉不好判断,也可以修改这个端口号并修改自己使用的测试机的代理设置。要顺手说一句的是,设置了代理的手机如果目标代理服务器端口是没有启用Fiddler的,那么这台手机时无法正常上网的,如果经常使用Fiddler调试手机流量,在手机无法正常上网时不要忘记检查一下手机的代理设置哦。
第二个需要关注的选项Allow remote computers to connect是一个Checkbox,勾选后Fiddler就可以查看非本机但是代理到本机设置端口的流量了,如果没有开启此选项,即使在手机上设置的正确的代理也是无法看到HTTP流量的,且手机无法正常上网,原因请参考上面一段,该选项需要重启Fiddler生效,点击确定时会提醒你的。
顺手提一句的是Act as system proxy on startup选项,这个选项是默认勾选的,如果你的主业是手机测试,那么推荐把这个选项去勾选,在Fiddler启动时就不会自动注册为系统的代理,本机的IE/Chrome等应用的流量就不会在Fiddler上显示了,去除了无关流量的干扰。
2.手机端设置:
(1).OS端设置:
用iphone登陆与本机相同的网络,手动设置代理的ip和端口,分别为主机的ip和端口。
打开手机Safari,输入http://本机地址:Fiddler设置的端口弹出一个网页,点击网页中的”FiddlerRoot certificate”安装Fiddler的证书,安装完成后就可以用Fiddler抓取手机上的包了。
注意:IOS一定要用Safari浏览器.
(2).安卓端设置:
1.在Android手机点击“设置”→“WI-FI”,长按处于需要设置代理的WI-FI;如XXXXX-3w-test.出现如下图提示框,点击“修改网络配置”。
2.在提示框里勾选“显示高级选项”,代理设置选为“手动”,将代理主机名和代理服务器端口改为电脑的IP地址,填好代理服务器端口,即上一步中我们设置的端口号。
3.安装证书.
打开手机自带浏览器,输入http://本机地址:Fiddler设置的端口弹出一个网页,点击网页中的”FiddlerRoot certificate”安装Fiddler的证书.
二、计算流量:
这里以用浏览器打开一个百度来举例.
这个是在手机浏览器上打开一个百度的所有请求.那么如何计算这个过程发送和收到的流量是多少呢?
方法一:
每个请求在Statistics中都可以看到这个请求发送/接收的字节数,那么把每个请求都手动相加起来就可以得到在手机上操作一个过程所发送/接收的流量数.
方法二:
选中需要统计流量的所有请求,然后---File-->Export Sessions-->All Sessions--->HTTPArchive v1.2-->Next保存到电脑.
导出的是.har格式的文件,.har文件其实是一个json格式的文件,直接用txt文本打开文本可能会很乱,可以把它去格式化下.然后是如下图的样式.
request下的headerSize:888 ,888是发送请求的大小.
response下的 headerSize:168 和bodySize:188 168+188是接收到的流量大小
那么把整个文件中的request下headerSize值相加就是总共发送的流量大小
response下的 headerSize+bodySize的总和就是接受的流量大小.
此种方法统计出来的流量存在较大的误差,不建议使用.
发表评论