腾讯GT官方文档:http://gt.qq.com/docs/a/faq/HowTestNet.pdf


1.Android流量测试

粗:应用消耗的流量

细:一个业务操作过程中,总消耗的流量,发请求的流量,收到响应结果的流量,流量的消耗曲线走势。

更细:抓包,从TCP和HTTP处入手。分析流量的大小,产生流量的类型和原因,请求的频率,进而达到优化流量的效果。


2.操作流程

(1)粗测

Android4.X版本,都自带流量检测。

sony s50h:设定-》数据使用,可以查看各应用使用数据情况。

(2)腾讯GT测试流量

选择被测应用-》只勾选Net指标-》开始启动、操作、结束-》查看结果-》保存数据

最后通过excel将趋势图还原出来。

(3)腾讯GT+Wireshark测试流量

需要root,(⊙﹏⊙)b

大概流程:

a.通过GT的插件GTPcap抓包,操作获取数据;

b.过滤tcp或http,确认测试场景GET和POST的请求类型和个数;

c.具体请求可右键follow tcp stream;

d.统计-》概要,计算流量。

e.对比分析,给出结果报告。


3.常见流量问题

(1)冗余内容

同类请求被间隔执行,请求的内容包含一些相对静态的信息,正确的处理是第一次请求包括静态信息就好,后面的同类请求只包含必要的即时变化信息即可。错误的处理方式是每次请求服务器都返回一次静态信息。

 (2)冗余请求

有的时候会发现应用短时间内发出多个同样的请求,收到结果也都几乎一样,这种情况应该尽量减少请求次数,同时注意排查程序逻辑错误,也许问题不像表面看起来那么简单。

 (3)无用请求

有的请求,你会发现谁也不知道它是干嘛的,很可能是以前版本遗留下来的无用请求,或者是引用的其他代码包偷偷发出的,甚至是间谍请求,请收集一切证据后,毫不犹豫的干掉它。

 (4)永远无法得到回应的请求

  如果见到某类请求永远的连接失败或被返回404之类的失败结果,那它不是历史遗留的多余请求,就是某个不易察觉的功能已经失效了。

 (5)过多的失败请求

 有见过一类或一组请求,n个成功之中夹着m个失败的吗?举个简单的场景,某类请求,间隔1分钟后连续发两次,总是先有一次失败的请求,1s后马上再次发出一次同样的请求就成功了(这里1s后发出的请求是指业务逻辑层判断前面请求失败后延迟1s后重传的)。很好奇为什么第一次总失败是吧,就有这么种情况,客户端两次请求乐观的想要复用同一个TCP连接(长连接半长连接),但是服务端不这么想,也许是客户端发起两次请求的间隔,超出了服务端长设置的长连接无响应时限。。如何判断呢?看看失败的那次请求,是否和前一次成功的请求复用了同一个TCP连接(体现在Wireshark的streamId)。

 (6)非预期请求

 比如一种常见的情况,应用退后台后,有些请求就没必要了,观察下自己的产品,是否在后台真的没有发出这些请求。


4.如何判断一个应用的流量消耗偏高

  如果看流量的绝对值看不出高低,那就找几个同类型的产品对比一下。如果完成同样的事务,被测应用比同类产品高很多,那就是偏高了,可能有优化空间。

5.如何找到有效的优化点

  把分析的不同类数据包,按包占总流量大小的比例,和包的数量排序,占比多的,和消息数量多的,一个优化空间大,一个精简请求次数的机会大。