恭喜发财dife 发表于 2018-2-23 13:51:27

android流量测试的指导方法

在移动互联网的大背景下,流量测试是非常有必要的一项终端测试。我最近对android的流量测试进
行了研究,目前做这块的方法有很多,方法也在不断的更新。目前很多工具携带了流量统计的功能,
但是我试用后都很难获得准确的数据,目前靠谱的方法有如下两种:

1、tcpdump +wireshark相结合的方法

2、读取该APP对应的tcp_snd/tcp_svn文件的值

流量测试可以给我们带来什么?

1.可以让我们很清楚的知道用户在某种场景下使用我们的产品需要消耗多少流量。

2.流量数据分析可以指导我们去做优化。比如cgi的调用和参数设置是否合理,有些资源或者配置是
否可以本地化?

3.流量的优化可以带来速度的优化。减少tcp数据包的个数,或者直接减少请求数都可以带来速度
的优化。

总的来说,就一点,就是帮助用户省流量钱!!

tcpdump +wireshark的方法
第一步:tcpdump抓包

1.默认安装了adb以及java环境以及安装了wireshark

2.打开cmd,进入adb目录,测试设备的连接

3.把tcpdump拷贝的/data/local/tcpdump目录 (此步需要获取手机root权限)

此时我们可以看到root的标志符号 #,表示当前已经是root状态。利用adb shell在手机上创建目录
/data/local/tcpdumpb并执行命令:



D:\adbtools是之前我下载的tcpdump存放的位置。

4.修改tcpdump的权限



5.执行抓包命令

adb shell data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap

6.抓的包在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.



我测试了这两种方法在同一个场景下的区别,相差很小。

海海豚 发表于 2018-2-23 15:24:01

谢谢分享~

梦想家 发表于 2018-2-28 16:08:48

:handshake
页: [1]
查看完整版本: android流量测试的指导方法