这篇文章主要是想介绍下流量专项测试的另外一种方法tcpdump+Wireshark抓包测试法。
在后台系统的开发和测试中,借助工具抓取网络包来进行网络层的分析是一种非常常用的技术手段,常用的抓包工具有Windows下的Wireshark工具和Linux下的tcpdump。由于android本身也是一个Linux系统,所以也有对应的tcpdump版本。IOS系统也可以使用tcpdump抓包。如果我们需要测试某一个App消耗的流量就需要禁用其他APP的连网权限。限制其他app的联网权限,如果不限制的话,流量统计的不够精确。因为有些App的进程是常驻后台的,即使不运行,也会有网络报文。可以借助一些手机管家软件禁用网络。
由于tcpdump需要比较高的权限来访问底层的网络包,所以需要对android系统root权限,这里的root权限,推荐个网址http://www.shuame.com/root/ 用root精灵PC 版本链接手机就可以root。而IOS需要越狱。下面以android为例来看看。
1.通过adb push 命令把tcpdump文件导入到手机
首先你得下载这个tcpdump文件,下载完以后放到指定的文件夹,以我的电脑为例放入到C盘,C:\Users\zhoukaite\Downloads\feimao文件夹里面, 然后上传到手机目录/sdcard/data/feimao,通过adb命令上传如下
2. 给 tcpdump 增加可执行权限
adb shell
su
chmod 6755 /sdcard/data/feimao
3.启动命令
4.打开app,点击你想测试的模块,调用接口发起正常请求。这个时候会看到got 的流量数据一直在累加,当趋于稳定之后,Ctrl +C 退出adb shell 模式
启动命令之前,如果手机没有打开任何APP,流量got 是0
5.抓取到的.pcap文件要从手机导出都电脑,然后才能对文件分析
6.打开Wireshark, 打开feimao.pcap文件,查看刚才的抓包结果,点击Statistics→Summary,流量的数值为Bytes一行的Displayed一栏
这里的流量数据换算结果如下:3964769B=3871.844KB=3.78MB
6.查看接口的调用流量情况
基于wireshark提供的统计功能,从图中能看出各条TCP stream 进出流量情况。
除此之外,用fiddler、Charles工具都可以抓包分析流量,另外腾讯的GT、一些手机自带的软件也是可以测试流量的。
常见的流量节省方法:
1.数据的压缩。
减少数据传输量是一个最基本节省流量的方法,在尽量不影响功能和体验的情况下,压缩是一种很直接的减少流量方法。压缩包含接口文本数据的压缩、js文件的压缩以及图片的压缩。
2、不同数据格式的采用
在传输相同的信息情况下,采用更精简的文件格式也是一种常用的减少流量的方法。例如采用JSON格式作为接口数据返回格式通常比XML格式要小。
3、控制访问的频次
减少流量消耗的另一个角度是减少访问频次,这个主要针对后台数据上报,PUSH消息检查等定时机制的。
4、只获取必要的数据
有时候APP一页的内容非常多,而用户可能只会看一部分,过多的从后台拉去数据就是浪费,所以可以采用分屏加载或者懒加载的方式来减少流量消耗。
5、缓存
缓存也是一种非常有效的方法,做法和浏览器缓存类似,可将图片,js等数据暂存起来,但由于手机存储空间有限,也需要控制整个缓存大小,并给用户提供清理缓存的选项。
6、针对不同网络类型设计不同的访问策略
当前大多数用户更多的在意在4G情况流量的使用,而在wifi情景下,流量和带宽都不是问题。针对这两种情况的差异,可以通过针对不同网络类型设计不同的访问策略,因为有些APP不同的网络类型返回的内容不一样。
原文地址:https://www.cnblogs.com/feimaoyuzhubaobao/p/9093597.html