APP专项测试——流量测试
移动互联产品给用户带来了很大的便利,但是在未来的一段时间内,移动 络的带宽还是比较有限,毕竟流量也是用户要付费的。这使得用户会关心他使用的App使用了多少流量,因为这直接关系到用户的资费账单。一些不好的App设计,或者缺陷,比如频繁在后台联 去服务端获取信息等,这些都会导致用户卸载App,或者引起投诉。因此进行软件的流量测试是很有必要的。
接下来我们就讨论如何针对Android和ios平台进行流量测试。
以下讲述3种流量测试,方法:手机上抓包、基于WiFi代理的fiddler工具抓包、Android自带的抓包方式。
1:手机上抓包 tcpdump+wireshark(参考adt结合使用)
在后台系统开发和测试中,借助工具抓取 络包(简称:抓包)来进行 络层的分析师一种常用的技术手段,常常使用的抓包工具有Wireshark和linux下的tcpdump。
由于Android系统是基于Linux的,所以可以使用tcpdump这个工具,但有一点特殊要求是手机一定要获取ROOT权限,下面就来详细给大家讲解一下如何使用Android的tcpdump获取流量信息。
前要:先使用adt安装android,然后打开虚拟机,详情参考资料(android开发
环境的搭建)
步骤1::先下载Android版tcpdump文件(
https://www.androidtcpdump.com/android-tcpdump/downloads)
步骤2::将tcpdump通过adb shell命令上传到Android虚拟机上去:
adb push tcpdump /data/local/tcpdump (上传数据包)
adb shell chmod 6755 /data/local/tcpdump (权限)设置
Tcpdump
? 语法:adb push [ tcpdump的window绝对路径] [/data/local/tcpdump]
adb shell chmod +[权限值] [data/local/tcpdump]
? 步骤3:使用tcpdump抓取流量数据包
adb shell—进入adb shell
su root–切换到root账户
/data/local/tcpdump -s 0 -w /data/capture.pcap -v
data/local/tcpdump -s 0 -w /data/capture.pcap -v
详解:
-s 0:抓取数据包时默认抓取长度为68字节。加上 –s 0表示抓取完整的数据包信息
-w /data/capture.pcap:表示把抓取的数据包文件保存在Android虚拟机的/data 文件夹下,
-v:表示在命令执行中显示当前的包的数量
? 步骤4:使用adb pull /data/capture.pcap下载文件到windows系统下
? 步骤5:使用wireshark打开capture.pcap数据包文件,并分析数据
? 步骤6:wireshark打开刚刚的抓包文件,使用filte做过滤,根据wireshark显示过滤器的语法,假设APP对应的目标服务器的地址是(121.14.76.22)
? Filter的语法:
“入流量” ip.src == 121.14.76.22
“出流量” ip.dst == 121.14.76.22
? 统计总流量的方法Statistics菜单:
– 简单查看流量统计可以看第一个Capture File Properties
file:显示总体信息
time:显示抓取第一个、最后一个的时间和整体时间间隔
capture:OS名称、抓包的接口
interfaces:所有抓到流量与接口的详细情况
statistics:提供各种详细的数据
? 2:使用fiddler工具分析 络流量(ios/android通用流量测试方法)
步骤1:被测手机和电脑要在同一局域 或者电脑开热点,手机连接在手机上设置wifi代理为:手动.代理主机填写window电脑的ip代理端口填写:8888
? 查看本机电脑ip
? 如果是和手机在同一局域 :
? 无线局域 适配器WLAN的ip
? 如果是电脑端开的热点:
? 无线局域 适配器本地连接*数字的ip
? 步骤2::设置fiddler工具,如下图所示:
在tools下的fiddler options的https栏勾选3个选项
? 在 connection上全部勾选上,并默认端口为8888
? 注意设置好之后最好重启fiddler
? 抓取APP上的HTTPS请求
? 1.如果app都是http请求,是不需要安装证书,能直接抓到的,如果是https请求,这时候手机就需要下载证书了。
? 2.打开手机浏览器输入:http://192.168.xx.xx:8888 ,这个中间的host地址就是前面查到的本机地址。
? 3.出现如下画面,点箭头所指的位置,点击安装就可以了。
? 步骤3:下面使用fiddler抓取的手机打开微博时请求和响应时的流量大小
? 3:通过系统自带的统计功能统计流量
? Android使用ADB通过uid可以查询到流量统计
? 具体方法:proc/Uid_stat/{uid}/tcp_snd
? proc/Uid_stat/{uid}/tcp_rcd’
? 限制条件:
? 1:要在真机环境下
? 2:真机要获取root权限
2、对应的情况是,在Mac上可以使用Charles作为代理,以及请求、响应显示的工具,同学们可以自行在课下研究。除了使用抓包工具进行流量的获取之外,还可以使用其他方法获取 络流量,比如App内部通过代码统计接口的数据量等,由于此部分的讲解过于复杂,这些测试方法将由同学们在
今后的工作中自己去逐步深入的了解和学习。
常见的流量节省方法
1:数据在不影响体验和功能下进行压缩,比如 页js文件压缩、图片压缩。
2:不同数据格式的采用,比如采用json格式作为接口返回格式通常比XML格式要小。
3:优化数据的下载,比如采取分屏加载的方式来减少流量的损耗。
4:本地缓存, 可以将客户端获取的一些图片、js文件都暂时的缓存起来,减少 络数 据加载。
5:针对不同 络类型设计不同的策略,比如2g/3g 络手动下载图片等方法来优化 络。
? 3.流量测试应该注意的测试项:
1:应用首次启动的流量提示
2:应用后台连续运行2小时的流量值
3:应用在运行极限的平均流量值
4:针对场景法涉及的应用主流程方面的测试
5:在首次登陆时的平均值
(未完待续…)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!