app流量测试

来源:互联网 发布:局域网时间同步软件 编辑:程序博客网 时间:2024/04/28 21:02

流量测试的意义

流量测试可以给我们带来什么?

1.可以让我们很清楚的知道用户在某种场景下使用我们的产品需要消耗多少流量。

2.流量数据分析可以指导我们去做优化。

比如cgi的调用和参数设置是否合理,有些资源或者配置是否可以本地化?

3.流量的优化可以带来速度的优化

减少tcp数据包的个数,或者直接减少请求数都可以带来速度的优化。


场景:

APP性能场景典型的无非三种

首次启动,非首次启动(比如后台运行状态切换),后台运行


1、使用安卓系统自身的TCP流量计数人工计算。

场景举例: 测试某APP首次启动到彻底加载完成的流量消耗,被测包名为com.newsplus.tr

1.1安装被测APP到测试机,不启动APP。

1.2使用adb连接到测试机,

cat /data/system/packages.list | grep com.newsplus.tr


图中10216即为该包UID

1.3使用命令查看当前下行(下载)流量情况

cat /proc/uid_stat/10216/tcp_rcv


(结果中4390单位为bytes,其中10216为我们获取到的UID)

1.4启动APP到APP彻底启动

再次执行执行命令cat/proc/uid_stat/10216/tcp_rcv


1.5 rcv代表上行流量,把tcp_rcv换为snd可以查看上行流量。例子如下

cat/proc/uid_stat/10216/tcp_sed


1.6计算实际tcp上下行流量

(78145-4390)/1024计算出下行(下载)流量的大小单位KB

(25413-4338)/1024计算出上行(上传)流量的大小单位KB

注意:启动APP后的流量记录多尝试几次,当不操作APP且流量值不变化时为准。


该方法优势:简单,容易上手,容易测出对应场景下上下行流量,容易封装为脚本。

该方法劣势:协议限制性,无法进行具体的剖析。


2、使用tcpdump+wireshark抓包分析

首先使用adb发送tcpdump文件到设备,如

adb push d:\tcpdump /data/local/tmp

tcpdump常见参数

-i指定网卡(interface),any表示不限网卡;

 

-c指定接收的packets数量,接收完成后自动停止抓包;

 

-w指定输出文件,输出文件的格式为pcap;

 

-s(--snapshot-length)指定在每个packet中最多截取的字节数,设置为0时表示截取上限取默认值262144;

 

-v/-vv/-vvv,指定输出的详细程度,针对流量测试,我们不需要非常详尽的输出数据,取-v即可。

 

 su-c /data/local/tmp/tcpdump -v -i any -s 0 –c 3000 -w /sdcard/us.pcap

 

使用上方命令就会调用指定位置的tcpdump把抓包的数据保存到制定文件中

然后使用adb发送文件到PC本机

adb pull /sdcard/us.pcap D:/

使用wireshark打开抓取的pcap文件



使用过滤器过滤需要显示的内容如:

ip.addr == 192.168.10.101

显示源或者目标IP为192.168.10.101的相关信息。

可以按照时间顺序查看具体的网络通讯情况

包括源IP、目标IP、协议、长度、信息

可以根据此进行具体情况进行细节的分析。

点击统计---》捕获文件属性


使用“已显示”下分组的数据*平均分组大小/1024即可计算出被过滤的数据的数据大小。

如上图就是

260*503.5/1024=127.84



优势:可以更深层次的判断具体的网络交互情况以定位网络问题。

劣势:成本较高,耗时较久,且不容易和场景事物或者操作结合。


个人平时使用一些第三方工具等进行整体流量测试,然后使用adb进行具体场景/操作的流量测试,当存在流量问题或者怀疑出现流量问题后使用tcpdump结合wireshark进行具体剖析


0 0
原创粉丝点击