测试点:
1、 应用首次启动流量提示
2、应用后台连续运行2小时的流量值
3、应用高负荷运行的流量峰值
4、应用中等负荷运行时的流量均值
5、不同场景下,流量消耗
测试方法一:
【1】使用安卓系统自身的TCP流量计数人工计算
场景举例: 测试某APP首次启动到彻底加载完成的流量消耗,被测包名为com.excelliance.dualiad
1.1安装被测APP到测试机,不启动APP。
1.2使用adb连接到测试机
查看pid:adb shell ps | grep excelliance //查询进程名中包含“exce”的的进程信息
查看uid:adb shell cat /proc/pid/status //android系统的目录文件/proc/pid/status中包含关于uid的信息。
1.3使用命令查看当前下行(下载)流量情况 adb shell cat /proc/uid_stat/uid/tcp_rcv
1.4启动APP到APP彻底启动;
执行执行命令 adb shell cat /proc/uid_stat/uid/tcp_rcv 下行流量
执行执行命令 adb shell cat /proc/uid_stat/uid/tcp_snd 上行流量
1.5计算实际tcp上下行流量
(78145-4390)/1024计算出下行(下载)流量的大小单位KB
(25413-4338)/1024计算出上行(上传)流量的大小单位KB
1.6 APP总流量消耗= 上行 + 下行
注意:启动APP后的流量记录多尝试几次,当不操作APP且流量值不变化时为准。
这里的值的单位是Byte字节,并且是累积量
有的应用是没有tcp_snd和tcp_rcv这两个文件的,比如某些系统应用。
某些没有流量交换的应用的可能也没有这两个文件,或者这两个文件里没有数据。
测试方法二:
1、先获取进程ID:adb shell ps | grep com.android.browser
获得pid2、获取流量命令:adb shell cat /proc/5715/net/dev
统计Receive:接收数据流量;
Transmit:发送数据流量;
lo:本地流量,不用统计,因为它没有使用网络;
eth0:网卡0的流量;
eth1:网卡1的流量;
app总的流量=Receive+Transmit,即当前app流量消耗的总值;
1、第一次获取流量数据之后,在APP上经过一些列操作,时间5s,然后再去获取一次APP流量数据,差值就是本次APP的流量消耗;
2、持续执行10次,获取10次流量差值;
衡量流量消耗的标准:
1、竞品对比;
2、版本对比;
V1.2,消耗20M流量;
V1.3,消耗30M流量;
需要找到流量消耗原因
网友评论