如何做Android应用流量测试前言我们经常手机应用有这样的困惑:想知道应用费不费流量;想知道某几款同类应用,做同样的事儿,哪个更省流量;更深入的,想知道一款应用为什么这么费流量,流量都消耗在哪了;想知道在大4G时代,一觉醒来怎么房子车子就变成别人的了.
.
本文将介绍给您,解答上述困惑的简单方法.
工具GT(中文产品名称:随身调):是腾讯出品的开源调试工具,本次测试中用其进行手机的流量统计和抓包.
请在Android手机上安装GT应用(可以通过官网或应用宝下载).
Wireshark:抓包的分析工具,也提供了Android手机的抓包实现,GT中抓包的功能就是在其提供的实现基础上的易用性封装,本次测试中用Wireshark进行抓包的分析.
请在PC上安装Wireshark.
正文其实想知道一款应用费不费流量,大部分Android4.
x版本系统已经可以简单的查看了:关注流量比较粗的话,看一下上面这里也就够了,但从测试的需求看,这里只能观察到宏观的流量情况,到1天的流量消耗就没法再细化了,如果想知道具体一个业务操作或一段时间内的流量消耗呢如果想知道应用一次启动的流量消耗呢这时就该使用前面介绍的工具了.
比前面稍微深入一些,我们可能需要知道一个业务操作过程内,消耗的流量,及发出请求的流量、收到响应结果的流量各有多少,并且流量的消耗曲线是怎样一个走势.
这时就该使用GT,关于GT的基本使用和为什么用GT,GT网站有详细的说明,这里只介绍和流量相关的部分.
GT提供了一种简单的测试方式,也提供了一个严谨但麻烦的测试方式.
首先我们来看简单的方式:1.
先将应用运行起来,然后启动GT并在GT上选中被测应用及被测项NET(流量).
2.
业务操作前,启动数据采集,将会记录选中应用的流量的变化,为了方便统计,可以先把业务操作前发生的流量记录归零.
3.
退到应用界面,执行需测试的业务操作.
1.
选中被测应用2.
选中被测项NET可归零启动数据采集4.
业务操作后,回到GT界面,停止流量数据的采集,查看本次业务操作流量的变化.
到这里,从前面一张图我们已经可以知道一个业务操作过程中消耗的流量,包括发出请求的流量、收到响应结果的流量、流量消耗曲线是怎样一个走势了.
5.
我们可以保存本次测试结果到文件,以备后面更深入的分析.
点击停止采集可保存到指定目录保存的文件保存的目录参观一下这个文件:用强大的Excel把GT应用里显示的趋势图还原出来不是难事.
我们再来看看麻烦而严谨的方式:如果只是纯粹测测流量,上面的方式也足够了,那我们为什么需要麻烦而严谨的方式呢这里有两个原因,一个是仅仅知道流量的大小和趋势,还不足以对后续的流量优化进行明确的指导,即知道流量可能有点多,但不知道该如何着手优化.
另一个是原因是弥补上面方式的一个不足:有的应用,使用了本地socket和手机里其他进程产生交互,有时候Android系统会把这种手机内部的socket传输的数据量也计算到应用消耗的流量里(比如常见的视频应用不少都有这个问题),此时上面的方式就显得不够准确了,要获得真是网卡上发生的流量,就需要抓包这种终极方法了.
注意掌握这种方法的前提是您得先掌握基础的TCP和HTTP网络知识.
手机抓包是针对手机的网卡,所以这种方式无法单独抓一个应用的包,需要后续将归属于应用的包分析出来,而为了后续分析减少工作量,测试时候应尽量把其他能消耗流量的应用都关了.
Android手机的抓包是Wireshark提供的实现,GT上面做了封装,使手机可以不必连着PC即可抓包,方便在室外测试的场景.
1.
先从GT启动抓包.
抓包功能的入口在这里2.
之后还是执行测试的业务操作.
3.
被测业务操作结束后,点击stop,即停止抓包,并把抓包文件保存在对应的目录中.
将抓到包文件导入到PC,用Wireshark即可分析抓包文件.
关于Wireshark的使用,和PC上的使用没有区别,请大家自行在网上搜索,这里仅对使用Wireshark的要点提示下:1我们最先需要知道我们的应用发出了哪些请求,对应了上行流量,可以在Wireshark左上角【过滤】框输入"http"或"tcp"(如果确认过被测应用都是http请求,就只需要按http过滤),确认测试场景GET和POST的请求类型和个数(过滤结果可按【Info】分类更方便统计).
保存的目录开始抓包启动消耗流量的业务操作后,抓包的个数会不断刷新抓包保存的文件2在具体请求上可以右键"followtcpstream",等同于过滤条件tcp.
streameqxx,这样可以过滤出和它在同一个TCP流的消息.
3过滤条件出来后再点击【统计】->【概要】,对应Bytes栏【显示】列的数据即为流量.
过滤框,先按http或tcp过滤点下Info,按消息类型分组这些都是请求,关注每一类的个数,并由Source段确认是由手机发出的这些都是与GET请求在同一个TCP流中的消息,包括本次连接的TCP消息、HTTP请求及其应答200OK,熟悉TCP协议的同学可以很容易判断出这是一个短连接.
4通过对包的过滤分析,我们自然就可以得到流量的大小,产生流量的类型和原因,请求的频率,这样就能够对后续的流量优化进行指导了.
包的总大小是404227Byte,本次过滤出的消息大小是931Byte5更谨慎的,抓包和GT采集流量数据可以相互对照,避免分析时有所遗漏.
如何判断一个应用的流量消耗偏高如果看流量的绝对值看不出高低,那就找几个同类型的产品对比一下.
如果完成同样的事务,被测应用比同类产品高很多,那就是偏高了,可能有优化空间.
如何找到有效的优化点把分析的不同类数据包,按包占总流量大小的比例,和包的数量排序,占比多的,和消息数量多的,一个优化空间大,一个精简请求次数的机会大.
常见的流量问题最后简单例举几类可控的比较容易优化的流量问题给大家:冗余内容同类请求被间隔执行,请求的内容包含一些相对静态的信息,正确的处理是第一次请求包括静态信息就好,后面的同类请求只包含必要的即时变化信息即可.
错误的处理方式是每次请求服务器都返回一次静态信息.
冗余请求有的时候会发现应用短时间内发出多个同样的请求,收到结果也都几乎一样,这种情况应该尽量减少请求次数,同时注意排查程序逻辑错误,也许问题不像表面看起来那么简单.
DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...
无忧云怎么样?无忧云服务器好不好?无忧云值不值得购买?无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点...
tmthosting怎么样?tmthosting家本站也分享过多次,之前也是不温不火的商家,加上商家的价格略贵,之到斯巴达商家出现,这个商家才被中国用户熟知,原因就是斯巴达家的机器是三网回程AS4837线路,而且也没有多余的加价,斯巴达家断货后,有朋友发现TMTHosting竟然也在同一机房,所以大家就都入手了TMTHosting家的机器。目前,TMTHosting商家放出了夏季优惠,针对VPS推...