如何做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采集流量数据可以相互对照,避免分析时有所遗漏.
如何判断一个应用的流量消耗偏高如果看流量的绝对值看不出高低,那就找几个同类型的产品对比一下.
如果完成同样的事务,被测应用比同类产品高很多,那就是偏高了,可能有优化空间.
如何找到有效的优化点把分析的不同类数据包,按包占总流量大小的比例,和包的数量排序,占比多的,和消息数量多的,一个优化空间大,一个精简请求次数的机会大.
常见的流量问题最后简单例举几类可控的比较容易优化的流量问题给大家:冗余内容同类请求被间隔执行,请求的内容包含一些相对静态的信息,正确的处理是第一次请求包括静态信息就好,后面的同类请求只包含必要的即时变化信息即可.
错误的处理方式是每次请求服务器都返回一次静态信息.
冗余请求有的时候会发现应用短时间内发出多个同样的请求,收到结果也都几乎一样,这种情况应该尽量减少请求次数,同时注意排查程序逻辑错误,也许问题不像表面看起来那么简单.
Virmach商家我们是不是比较熟悉?速度一般,但是人家价格低,而且机房是比较多的。早年的时候有帮助一个有做外贸也许需要多个机房且便宜服务商的时候接触到这个商家,有曾经帮助够买过上百台这样的低价机器。这里需要提醒的,便宜但是速度一般,尤其是中文业务速度确实不快,如果是外贸业务,那肯定是没有问题。这几天,我们有看到Virmach推出了夏季优惠促销,VPS首年8折,最低年付仅7.2美元,多机房可选,如...
ucloud:全球大促活动降价了!这次云服务器全网最低价,也算是让利用户了,UCloud商家调低了之前的促销活动价格,并且新增了1核1G内存配置快杰型云服务器,价格是47元/年(也可选2元首月),这是全网同配置最便宜的云服务器了!UCloud全球大促活动促销机型有快杰型云服务器和通用型云服务器,促销机房国内海外都有,覆盖全球20个城市,具体有北京、上海、广州、香港、 台北、日本东京、越南胡志明市、...
乐凝网络怎么样?乐凝网络是一家新兴的云服务器商家,目前主要提供香港CN2 GIA、美国CUVIP、美国CERA、日本东京CN2等云服务器及云挂机宝等服务。乐凝网络提供比同行更多的售后服务,让您在使用过程中更加省心,使用零云服务器,可免费享受超过50项运维服务,1分钟内极速响应,平均20分钟内解决运维问题,助您无忧上云。目前,香港HKBN/美国cera云服务器,低至9.88元/月起,支持24小时无理...