51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4161|回复: 0
打印 上一主题 下一主题

[转贴] APP如何进行流量测试?常见测试方法全面解析 (上)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-2 14:27:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

 随着人们生活水平的日益提高,手机已经成为了我们生活中的一部分,无论是在家里、工作中、地铁上或是在聚会中等等,都会有手机的身影。所以手机软件也便一步步崛起,购物、外卖、新闻、娱乐、视频等,我们已经离不开APP。

  

  但APP在带给我们便利的同时也会带来一些不必要的问题,比如:一些不好的app设计或缺陷,有些App会频繁在后台联网去服务端获取信息,可能带来意外的流量,导致用户卸载app或引起投诉,直接影响用户体验,造成不必要的麻烦,因此在移动产品测试中,很有必要对app使用的流量进行度量!

  用户没有直接使用的情况在android系统更易出现,因为目前android的消息推送机制不是借助统一的管道,而是各个app定时启动后台进程到自己的服务端去询问是否有新消息,有就拉去到客户端,而这个询问本身就会带来流量的消耗。

  对于android的app有一些特有的流量测试的方法。

  Android系统自带了统计功能。通过直接读取android系统上的两个文件的内容:

  Proc/uid_stat/{UID}/tcp_snd和tcp_rcv,其中UID是每个app安装时分配的唯一编号用于识别该app,tcp_snd中的数据表示法术的数据累计大小,单位是字节,tcp_rcv表示接收到的数据累计大小。

  通过adb命令进入shell可以获取到这些数据。

  首先通过包名获取app的PID:

  

  再访问/proc/{PID}/status文件查找app对应的UID,再查看上述的2个文件:

  

  

  这个做法也是很多手机安全软件的做能比较简单的给出各个app的流量消耗情况,不过这个方法没有其他维度的区分,只有统计总数据。

  还能通过系统API来获取基本的流量数据。TrafficStats类提供了多个方法获取不同角度的流量数据:

  

  还可以在app内部往来访问的接口代码加上相关的统计功能来获取流量的数据。

  

  以上代码中getContentLength获取了本次响应的数据量并在日志打印了出来。

  实际应用中很多app会将借口访问的功能做一些封装,上层应用可以复用,针对这些情况可以在借口访问的代码封装中插入流浪统计的功能,可以详细区分每个接口的访问次数和数据量。

  但是这种方法统计不到一些系统的DNS等流量,还有不使用接口封装的模块产生的流量会被遗漏。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-10 15:17 , Processed in 0.065369 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表