一、Android终端app流量测试
流量测试的原理:在安卓手机上,应用的网络流量数据都会保存在系统的/proc/uid_stat/$UID/tcp_rcv 和/proc/uid_stat/$UID/tcp_snd两个文件夹里面,一个是请求耗费的流量,一个是接受的数据流量,这两个数据是由系统记录的,在我们启动某个软件的时候,系统会根据这个应用所占用的进程号pid在根目录下创建一个以这个命名的文件夹,在文件夹的下面有存有UID的文件。
了解一下PID和UID可以查看博客:
获取PID:
查看当前应用的UID,手机连接电脑,adb shell ,adb shell ps | grep “你想测试的应用的包名”
如上图红色框中就是我们要查的PID,然后再根据PID查找UID
进入 /proc/28904/status
如上图红色框中就是我们要查的UID
cd uid_stat/10137
cat tcp_rcv
cat tcp_snd
如上图就可以看到当前这个应用的上下行流量,单位是byte。
另一种获取流量数据方法:
cat /proc/net/xt_qtaguid/stats|grep #uid#
第六列是接收数据,第八列是传输数据。第六列和第八列流量加一起。一个UID对应多个进程,所以两行流量全部相加。获取的流量数据也app累积流量。
具体查看博客:
安卓8.0以上手机使用如下方法测试流量:
1.查看应用PID,进入adb shell 后使用命令PS -A 通过包名找到PID;
2.查找应用UID,进入/proc/11970 目录--- cd /proc/11970 后通过命令 cat status 查看UID;
3.在adb shell 中使用命令,cat /proc/net/xt_qtaguid/stats | grep UID 查看应用流量信息。记录上行流量tx_bytes 为Tx1,下行流量rx_btyes为Rx1;
4.操作应用;
5.使用命令,cat /proc/net/xt_qtaguid/stats | grep UID 查看应用流量信息。记录上行流量tx_bytes 为Tx2,下行流量rx_btyes为Rx2;
6.两次测出来的数据和,获取应用使用流量B=(Tx2-Tx1)+(Rx2-Rx1).
二、iOS终端app流量测试
手机连接电脑,使用xcode-open developer tool - instrument-network测试流量。
开始后,操作手机,查看流量消耗
流量消耗为 byles in +byles out
谢谢查看,笔记后期修改
2019-09-22