工具

  • GT(中文产品名称:随身调):是腾讯出品的开源调试工具,本次测试中用其进行手机的流量统计和抓包。请在Android手机上安装GT应用(可以通过官网或应用宝下载)。
  • Wireshark:抓包的分析工具,也提供了Android手机的抓包实现,GT中抓包的功能就是在其提供的实现基础上的易用性封装,本次测试中用Wireshark进行抓包的分析。请在PC上安装Wireshark。

正文

其实想知道一款应用费不费流量,大部分Android4.x版本系统已经可以简单的查看了:

关注流量比较粗的话,看一下上面这里也就够了,但从测试的需求看,这里只能观察到宏观的流量情况,到1天的流量消耗就没法再细化了,如果想知道具体一个业务操作或一段时间内的流量消耗呢?如果想知道应用一次启动的流量消耗呢?这时就该使用前面介绍的工具了。

比前面稍微深入一些,我们可能需要知道一个业务操作过程内,消耗的流量,及发出请求的流量、收到响应结果的流量各有多少,并且流量的消耗曲线是怎样一个走势。这时就该使用GT,关于GT的基本使用和为什么用GT,GT网站有详细的说明,这里只介绍和流量相关的部分。GT提供了一种简单的测试方式,也提供了一个严谨但麻烦的测试方式。

  • 首先我们来看简单的方式:

1. 先将应用运行起来,然后启动GT并在GT上选中被测应用及被测项NET(流量)。

2. 业务操作前,启动数据采集,将会记录选中应用的流量的变化,为了方便统计,可以先把业务操作前发生的流量记录归零。

3. 退到应用界面,执行需测试的业务操作。

4. 业务操作后,回到GT界面,停止流量数据的采集,查看本次业务操作流量的变化。

到这里,从前面一张图我们已经可以知道一个业务操作过程中消耗的流量,包括发出请求的流量、收到响应结果的流量、流量消耗曲线是怎样一个走势了。

5. 我们可以保存本次测试结果到文件,以备后面更深入的分析。

来围观一下这个文件:

用强大的Excel把GT应用里显示的趋势图还原出来不是难事。

  • 我们再来看看麻烦而严谨的方式:

如果只是纯粹测测流量,上面的方式也足够了,那我们为什么需要麻烦而严谨的方式呢?这里有两个原因,一个是仅仅知道流量的大小和趋势,还不足以对后续的流量优化进行明确的指导,即知道流量可能有点多,但不知道该如何着手优化。另一个是原因是弥补上面方式的一个不足:有的应用,使用了本地socket和手机里其他进程产生交互,有时Android系统会把这种手机内部的socket传输的数据量也计算到应用消耗的流量里(比如常见的视频应用不少都有这个问题),此时上面的方式就显得不够准确了,要获得真是网卡上发生的流量,就需要抓包这种终极方法了。注意掌握这种方法的前提是您得先掌握基础的TCPHTTP网络知识。

手机抓包是针对手机的网卡,所以这种方式无法单独抓一个应用的包,需要后续将归属于应用的包分析出来,而为了后续分析减少工作量,测试时候应尽量把其他能消耗流量的应用都关了。Android手机的抓包是Wireshark提供的实现,GT上面做了封装,使手机可以不必连着PC即可抓包,方便在室外测试的场景。

1. 先从GT启动抓包。

    

2. 之后还是执行测试的业务操作。

3. 被测业务操作结束后,点击stop,即停止抓包,并把抓包文件保存在对应的目录中。

将抓到包文件导入到PC,用Wireshark即可分析抓包文件。关于Wireshark的使用,和PC上的使用没有区别,请大家自行在网上搜索,这里仅对使用Wireshark的要点提示下:

(1)我们最先需要知道我们的应用发出了哪些请求,对应了上行流量,可以在Wireshark左上角【过滤】框输入"http"或"tcp"(如果确认过被测应用都是http请求,就只需要按http过滤),确认测试场景GET和POST的请求类型和个数(过滤结果可按【Info】分类更方便统计)。

(2)在具体请求上可以右键“follow tcp stream”,等同于过滤条件tcp.stream eq xx,这样可以过滤出和它在同一个TCP流的消息。

(3)过滤条件出来后再点击【统计】->【概要】,对应Bytes栏【显示】列的数据即为流量。

(4)通过对包的过滤分析,我们自然就可以得到流量的大小,产生流量的类型和原因,请求的频率,这样就能够对后续的流量优化进行指导了。

(5)更谨慎的,抓包和GT采集流量数据可以相互对照,避免分析时有所遗漏。

Android应用流量测试的更多相关文章

  1. GT-----如何做Android应用流量测试?

    1.如何判断一个应用的流量偏高? 如果看流量的绝对值看不出高低,那就找几个同类型的产品对比一下,如果完成同样的事物,被测应用比同类产品高很多,那就偏高了,可能有优化的空间. 2.如何找到有效的优化点? ...

  2. 【转载】Android端手机测试体系

    1.冒烟测试 跟web端 的测试流程一样,你拿到一个你们开发做出来的apk首先得去冒烟,也就是保证他的稳定性,指定时间内不会崩溃.这款原生sdk自带的monkey可以当做 我们的测试工具.就跟我之前博 ...

  3. Android 网络流量监听开源项目-ConnectionClass源码分析

    很多App要做到极致的话,对网络状态的监听是很有必要的,比如在网络差的时候加载质量一般的小图,缩略图,在网络好的时候,加载高清大图,脸书的android 客户端就是这么做的, 当然伟大的脸书也把这部分 ...

  4. Android端手机测试体系

    1.冒烟测试 跟web端的测试流程一样,你拿到一个你们开发做出来的apk首先得去冒烟,也就是保证他的稳定性,指定时间内不会崩溃.这款原生sdk自带的monkey可以当做我们的测试工具.就跟我之前博客所 ...

  5. Android CPU耗电量测试

    Android CPU耗电量测试 在测试Android app时,不仅仅要关注app的功能,也好关注app的性能指标,cpu.内存.流量.电量等.简单介绍下电量测试中的cpu耗电. 影响耗电的因素 C ...

  6. Android APP压力测试(三)之Monkey日志自动分析脚本

    Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 ...

  7. Android APP压力测试(二)之Monkey信息自动收集脚本

      Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...

  8. Android Monkey压力测试

    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上. Monkey会发送伪随机的用户事件流,适合对app做压力测试. 1为什 ...

  9. Android Monkey 压力测试 介绍

    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上. Monkey会发送伪随机的用户事件流,适合对app做压力测试 阅读目录 ...

随机推荐

  1. 20155310马英林 实验2 Windows口令破解

    实 验 报 告 实验名称: 实验二 口令破解 姓名:马英林 学号: 20155310 班级: 1553 日期: 2017.10.24 一. 实验环境 •系统环境:Windows •网络环境:交换网络结 ...

  2. 安装虚拟机&Linux命令学习

    安装虚拟机&Linux命令学习 基于VirtualBox虚拟机安装Ubuntu 1.下载安装VirtualBox 根据自己电脑(32位操作系统)的实际情况,我在网上找了相应的VirtualBo ...

  3. bootsrtap带表格面板内容居中

    css中,添加 .table th, .table td { text-align: center; vertical-align: middle!important;}

  4. 【原创翻译】The Free Lunch Is Over

    微软C++大师Herb Sutter的文章<The Free Lunch Is Over>翻译,以前自己也经常翻译,但是都不会上传博客.个人很喜欢这篇文章,所以以此作为翻译生涯的开始. 免 ...

  5. day 3 局部变量 全局变量

    1.局部变量 2.全局变量(死歌的大招)函数前面声明的都是全局变量 3.全局变量和局部变量的区别 1)老方法 def get_temper(): temper = 33 return temper d ...

  6. 【MySQL函数】MySQL 5.5从零开始学第六章

    说明:本文总结自:<MySQL 5.5从零开始学>第六章 MySQL中的函数包括: 数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数和加密函数等. 函数: 表示对输入参数值 ...

  7. redis sentinel介绍

    目录 配置redis主从复制 使用ping命令检查是否启动 主节点查看链接信息 开始部署sentinel 节点 部署sentinel 启动sentinel 演示下故障转移 查看当前sentinel监控 ...

  8. Python和Pycharm的安装

    目录 安装Python 安装Pycharm IDE 破解Pycharm 用Pycharm创建Python工程 安装Python 去Python官网下载Python软件,网址:https://www.p ...

  9. 存储过程关于LOOP循环问题

    本随笔文章,由个人博客(鸟不拉屎)转移至博客园 发布时间: 2018 年 10 月 17 日 原地址:https://niaobulashi.com/archives/procedures_loop. ...

  10. 利用Tensorflow进行自然语言处理(NLP)系列之二高级Word2Vec

    本篇也同步笔者另一博客上(https://blog.csdn.net/qq_37608890/article/details/81530542) 一.概述 在上一篇中,我们介绍了Word2Vec即词向 ...