android流量测试的指导方法

http://bbs.utest.qq.com/?p=398 


在移动互联网的大背景下,流量测试是非常有必要的一项终端测试。我最近对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.


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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值