软件测试技术之Android性能测试—流量、电量测试方法
从安 2019-07-02 来源 : 阅读 1006 评论 0

摘要:本篇文章主要讲述软件测试技术之Android性能测试—流量、电量测试方法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章主要讲述软件测试技术之Android性能测试—流量、电量测试方法,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

软件测试技术之Android性能测试—流量、电量测试方法

  背景介绍

  Android用户也许会经常碰到以下的问题:

  1)应用后台开着,手机很快没电了——应用耗电大;

  2)首次/非首次启动应用,进入应用特别慢——应用启动慢;

  3)应用使用过程中,越来越卡——CPU能力不足/内存泄露;

  4)应用页面卡顿——帧率较低、页面卡顿。

  因此,对开发的Android应用,必须对其进行性能测试,不然将会直接影响用户体验。

  Android应用性能测试通常包括:启动时间、内存、CPU、耗电量、流量、流畅度等。我们将在这个月陆续为大家简单介绍一下每个测试点的常见测试方法及简单的定位思路,仅供参考。之前两周内,我们为大家介绍了启动时间、内存&CPU、内存泄漏&卡顿""测试方法,本期我们介绍Android性能测试白皮书的最后一章——流量、电量、弱网环境的测试方法。

  耗电

  耗电操作主要包含CPU、WIFI、流量、传感器(GPS NFC),以及应用屏幕wakelock等操作。我们更多的是关注应用本身是否劫持了系统的屏幕wakelock操作,没有及时释放屏幕wakelock,导致耗电。

  电量测试监控方法可以简单的从设置->电池->使用情况中查看,手机中的每个部件运行时对应的能耗值都放在power_profile.xml文件中,而系统的设置->电池->使用情况中,统计的能耗使用情况也是以power_profile.xml的value作为基础参数的。通过命令监控app个部件的使用时长,然后结合设备耗电的基础参数进行加权计算,即可得到app使用的耗电量。至于更详细的耗电量测试,可以专门把耗电这一性能指标拿出来,专项测试。

  流量

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

  下面就介绍两种流量的测试方法:

  1、tcpdump+Wireshark抓包测试法

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

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

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

  3)将 tcpdump (forAndroid)上传至Android手机上,在命令提示符窗口中输入命令:adbpush  <LocalPath of tcpdump>   /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 <LocalPathof PcapFile >

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

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

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

  操作步骤如下:

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

  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


本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!


本文由 @从安 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程