一、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 “你想测试的应用的包名”

Android终端测试 手机终端测试流程_iOS

如上图红色框中就是我们要查的PID,然后再根据PID查找UID
进入 /proc/28904/status

Android终端测试 手机终端测试流程_iOS_02

如上图红色框中就是我们要查的UID

cd uid_stat/10137

cat tcp_rcv

cat tcp_snd

Android终端测试 手机终端测试流程_iOS_03

如上图就可以看到当前这个应用的上下行流量,单位是byte。

另一种获取流量数据方法:
cat /proc/net/xt_qtaguid/stats|grep #uid#
第六列是接收数据,第八列是传输数据。第六列和第八列流量加一起。一个UID对应多个进程,所以两行流量全部相加。获取的流量数据也app累积流量。

Android终端测试 手机终端测试流程_Android终端测试_04

具体查看博客

安卓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