andorid流量测试方法
在移动互联网的大背景下,在这个流量还是比较废钱的年代,流量测试是非常有必要的一项终端测试。Lisa最近利用空档时间对android的流量测试进行的研究,目前做这块的方法有很多,方法也在不断的更新,比如andorid4.0自带了一个“流量使用情况”,也有一些工具携带了流量统计的功能,但是lisa试用了下貌似不靠谱,目前最靠谱的方法是如下两种方法:
【213青年的方法】tcpdump +wireshark相结合的方法
【普通青年的方法】读取该APP对应的tcp_snd/tcp_svn文件的值
当然还有一种更好更省力的办法,YY一下,就叫白富美方法吧:
【白富美方法】将以上两种方法做成工具……(待续,做好了分享给大家)
流量测试可以给我们带来什么?
1. 可以让我们很清楚的知道用户在某种场景下使用我们的产品需要消耗多少流量。
2. 流量数据分析可以指导我们去做优化。
比如cgi的调用和参数设置是否合理,有些资源或者配置是否可以本地化?
3. 流量的优化可以带来速度的优化
减少tcp数据包的个数,或者直接减少请求数都可以带来速度的优化。
总的来说,就一点,就是帮助用户省流量钱!!!
【方法一:213青年的方法】tcpdump +wireshark的方法
第一步:tcpdump 抓包
1. 默认安装了adb以及java环境以及安装了wireshark
2. 下载tcpdump :http://www.strazzere.com/android/tcpdump
3. 打开cmd,进入adb目录,测试设备的连接
4. 把tcpdump拷贝的/data/local/tcpdump目录 (此步需要获取手机root权限)
此时我们可以看到root的标志符号 #,表示当前已经是root状态
利用adb shell在手机上创建目录 /data/local/tcpdumpb并执行命令:
D:\adbtools是之前我下载的tcpdump存放的位置。
5. 修改tcpdump的权限
6. 执行抓包命令
adb shell data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
7. 抓的包在sdcard目录下,导出包(adb pull /sdcard/capture.pcap )
第二步:wireshark统计流量
wireshark打开刚刚的抓包文件,使用filte做过滤,根据wireshark显示过滤器的语法,假设APP对应的目标服务器的地址是(121.14.76.22)
Filter的语法:
“入流量” ip.src == 121.14.76.22
“出流量” ip.dst == 121.14.76.22
那么怎么统计这些过滤出来的包的大小呢?statistics下面有一个summary
我们要的数据就在这里
我们要的入流量的数据就是红框里面的数值
【方法二普通青年的方法】看/proc/uid_stat/<uid>/下的tcp_rcv和tcp_snd文件
1. 什么是uid
Adb shell进入手机之后,执行ps
Uid的值就是在63+10000=10063 ,即在要统计的APP后面的数据上加上10000.
2. Cat 这个文件即可,单位是byte.
lisa在同一个场景采集了这两个方法的结果数据,相差很小。