美文网首页Android
Android性能测试之网络流量(二)

Android性能测试之网络流量(二)

作者: Zzz_c7ec | 来源:发表于2017-12-26 17:48 被阅读0次

什么是网络流量?

我们的收集通过运营商的网络访问Internet,运营商替我们的手机转发数据报文,数据报文的总大小(字节数)即流量,这里的数据报文包含手机上下行的报文。由于数据报文采用IP协议传输,运营商计算的流量一般是包含IP头的数据报文大小。

1、tcpdump+Wireshark抓包测试法

流量测试最直接的方法就是抓包。在App运行期间,把手机收发的所有报文度抓取下来,再计算收发报文总大小,即App消耗的流量。但是如果我们需要测试某一个App消耗的流量需要禁用其他APP的连网权限。

1)限制其他app的联网权限,因为有些App的进程是常驻后台的,即使不运行,也会有网络报文。可以借助一些手机管家软件禁用网络。

2)手机上抓包,下载tcpdump,手机连接电脑,获得root权限。

3)将 tcpdump (forAndroid)上传至Android手机上,在命令提示符窗口中输入命令:adbpush     /data/local/tcpdump

4)给 tcpdump 增加可执行权限

adb shell

su

chmod 6755 /data/local/tcpdump

5)启动抓包,使用命令/data/local/tcpdump-v -i any -s 0 -w /sdcard/zhangyu.pcap

Got后面的数字表示当前抓到的包的数量。如果有变化,表示有网络流量。

6)导出抓包结果adb pull /sdcard/zhangyu.pcap

7)用Wireshark打开刚才的抓包结果,点击StatisticsàSummary,流量的数值为Bytes一行的Displayed一栏。

2、使用安卓自身提供的TCP收发长度统计功能

一般APP和后台服务器之间的通信都是基于TCP的,所以我们可以利用此统计来测试我们APP的流量,而且安卓提供的该统计功能是按照APP纬度来统计的,不需要禁止其他app的连网权限。

1)使用ps命令查看所测app的uid,例如贴吧的uid为10000+191=10191

Android中查看UID的方式:

cat data/system/packages.list

adbshell

su

ps |grep com.baidu.tieba

2)进入/proc/uid_stat/1191目录,cat获取当前tcp_snd和tcp_tcv的初始值

3)此时可以开始测试了,测试完成后再次获取tcp_snd和tcp_tcv的值

4)所测时间内的流量计算

发送流量:tcp_snd_new-tcp_snd_old=2032150-893233=1128917bytes

接收流量:tcp_rcv_new-tcp_rcv_old=18648825-1350829=17297996bytes

弱网环境

在进行手机应用测试时,经常需要模拟网络不稳定的状态下对测试执行的影响。调研了几款工具,可以通过手动设置数据丢包率,以及网络时延等参数,模拟弱网环境。如Charles、clumsy、netlimite、atc等。

1、几款工具的比较

1)Charles、Fiddler这样的软件只支持短连接,也就是说只有走短连接的接口才生效,长连接的不能使用。

缺点:不支持长连接

2)Atc工具和苹果自带的ios developer (开发者选项)的使用方法是一样的,需要在手机端操作,atc工具需要搭建一系列环境后,手机访问一个ip地址就能看见控制页面,然后修改相应的参数即可。

缺点:不宜操作,每次修改网络场景需要把被测app置于后台,切换到网络模拟界面改参数,然后再切回被测app。影响被测app的操作连贯性。

3) clumsy、netlimite等这类软件易安装,安装在电脑端,手机通过共享网络连接电脑,实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。

4)购买一些仪器,在全公司范围搭建一个弱网环境。

缺点:搭建成本高,需要有专门的技术人员支持。

综合比较以上四类工具,第三类推荐在日常测试过程中使用。下面就拿clumsy举例,介绍一下环境的搭建及使用。

2、clumsy环境搭建及使用

1)环境准备

windows笔记本,clumsy安装文件,共享网络

2)安装clumsy

clumsy免安装程序,下载完成后,直接点击exe可执行文件即可。

下载地址:https://pan.baidu.com/s/1pLAjm2J密码: mk8i

3)创建共享网络

a、电脑连接网线,打开网络和共享中心

b、点击本地连接---属性---共享---勾选第一个,并选择一个家庭网络连接(此时本地连接会显示共享的字样)

c、cmd--输入命令(启动cmd,最好用管理者身份启动)

netshwlan set hostednetwork mode=allow ssid=zhangyu1 key=123456789(ssid和key对应共享网络的名称和密码,key不能低于8位)

netshwlan start hostednetwork

至此手机就会搜索到电脑共享的网络,然后连接即可。

3、clumsy参数说明及使用

界面如下:

clumsy

首先根据用户选择的 filter 来拦截指定的网络数据。在 filter

中可以设定你感兴趣的协议(tcp/udp),端口号,是接收还是发出的端口。你也可以通过简单的逻辑语句来进一步缩小范围。当 clumsy

被激活时,只有符合这些标准的网络数据会被进行处理,而你不感兴趣的数据仍然会由系统正常传输。

当被 filter 的网络数据包被拦截后,你可以选择 clumsy 提供的功能来有目的性的调整网络情况:

1.   延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。

2.   掉包(Drop),随机丢弃一些数据。

3.   节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。

4.   重发(Duplicate),随机复制一些数据并与其本身一同发送。

5.   乱序(Out of order),打乱数据包发送的顺序。

6.   篡改(Tamper),随机修改小部分的包裹内容。

类似模拟网络环境的软件很多,大家可以针对自己的情况选择,不要找环境搭建过于繁琐的工具,简单易用就好。

相关文章

  • Android性能测试之网络流量(二)

    什么是网络流量? 我们的收集通过运营商的网络访问Internet,运营商替我们的手机转发数据报文,数据报文的总大小...

  • android性能测试的要点分析

    Android的app性能测试包括的测试项比如: 1、资源消耗 2、内存泄露 3、电量功耗 4、耗时 5、网络流量...

  • Android性能测试之网络流量(一)

    什么是网络流量? 网络流量是指,能够连接网络的设备在网络上所产生的数据流量。 性能数据给出的网络流量性能数据可以区...

  • 收集_性能优化

    Android性能优化(一)之启动加速35%Android性能优化(二)之布局优化面面观Android性能优化(三...

  • 平安金融壹账通测试技术周报(六十六期)

    本期导读:本期高级测试工程师张美苑带来两篇关于android性能评测分析的文章,分别针对网络流量及App启动时间进...

  • (转载)Android性能测试初探

    一、Android 性能测试初探(一) Android 性能测试,跟 pc 性能测试一样分为客户端及服务器,但在客...

  • Android篇

    Android篇 1. 性能测试 Android性能测试分为两类: 1、一类为rom版本(系统)的性能测试 2、一...

  • 性能问题_01参考文章

    参考文章 : Android性能优化(一)之启动加速35% Android性能优化(二)之布局优化面面观 Andr...

  • Android 内存泄漏总结

    Android 性能相关知识 Android性能之 内存泄漏总结 Android性能之 卡顿分析解决 Androi...

  • Android优化文章精选

    Android性能优化典范 Android性能优化典范 - 第1季Android性能优化之渲染篇Android性能...

网友评论

    本文标题:Android性能测试之网络流量(二)

    本文链接:https://www.haomeiwen.com/subject/hwcjgxtx.html