未经作者本人同意,不得转载,不得用于商业用途,否则视为侵权!
Android 专项测试
作者:酷酷木女侠
Android 专项测试是指针对 APP 应用程序在 Android 系统中特有的功能特性,进行的区别于其他(如 iOS
测试或者 WEB 端测试)的测试方法,本文将从如下的几个方面讲解 Android APP 的专项测试:
Android APP 的流量测试
Android APP 的电量测试
Android APP 的弱网络测试
Android APP 的稳定性测试
Android APP 的安全测试
Android APP 的环境测试
1 Android APP 的流量测试
Android APP 的流量消耗一般是指:用户操作引起的流量消耗,APP 后台运行导致的流量消耗
1.1 读取 tcp_snd、tcp_rc 文件获取流量
Android 系统自带的流量统计功能,直接读取 Android 系统上的 2 个文件的内容:
proc/uid_stat/{UID}/tcp_snd
proc/uid_stat/{UID}/tcp_rcv
备注:{UID}是每个 Android APP 在安装时分配的一个唯一编号,用于识别该 APP。tcp_snd 文件中的数据
表示发送的数据累计大小,以字节(Byte)为单位;tcp_rcv 文件中的数据表示接收到的数据累计大小,以字
节(Byte)为单位;部分手机厂商没有 uid_stat 这个文件,可能这方法行不通了
具体步骤:
第 1 步:准备真机或者模拟器(我这里用的是 Genymotion 上安装的手机模拟器),确保 Genymotion 上
配置的 SDK 是本地的 SDK(否则 adb shell 会报错)
第 2 步:打开 Android SDK 的 tools 文件夹下面的 monitor,可以看到你连接上的 Android 手机,显示手
机里面所有安装的应用的包名及对应的 PID,找到你要测试应用的包名及 PID
第 1 页 共 20 页
未经作者本人同意,不得转载,不得用于商业用途,否则视为侵权!
作者:酷酷木女侠
第 3 步:在终端通过 adb shell 命令进入手机的 shell
第 4 步:访问 /proc/{PID}/status 文件查找 APP 对应的 UID({PID}就是第 2 步中查找的 PID),在终端输入
命令:cat /proc/{PID}/status
第 5 步:访问 proc/uid_stat/{UID}/tcp_snd,查看 APP 发送的数据流量
#cat /proc/uid_stat/10078/tcp_snd
#35006
第 6 步:访问 proc/uid_stat/{UID}/tcp_rcv,查看 APP 接收到的数据流量
#cat /proc/uid_stat/10078/tcp_rcv
#41760
第 2 页 共 20 页
未经作者本人同意,不得转载,不得用于商业用途,否则视为侵权!
作者:酷酷木女侠
1.2 读取 stats 文件获取流量
当第 1 种方法中的第 5 步和第 6 步找不到文件的时候,可以用命令 cat /proc/net/xt_qtaguid/stats|grep
{UID},图中第 6 列 rx_bytes 为接收的数据,第 8 列 tx_bytes 为传输的数据,这几行的数据加起来,就是总
的流量消耗(包含了 tcp/udp 等所有网络传输流量的总和)
1.3 Android APP 节省流量的方法
数据的压缩:接口文本数据压缩、JS 文件压缩、图片压缩、视频压缩
采用不同的数据格式:采用 JSON 格式作为接口数据返回格式一般比 XML 格式要小
控制访问的频率:减少服务端推送或者客户端请求的频率
推送的数据:采用分屏加载或者懒加载方式减少推送的数据量(分屏加载:先加载框架和文字,再加载第一
屏数据,向下滚动到哪里加载到哪里;懒加载(Load On Demand)是一种独特而又强大的数据获取方法,它能
够在用户滚动页面的时候自动获取更多的数据,而新得到的数据不会影响原有数据的显示,同时最大程度上减
少服务器端的资源耗用)
缓存:将一些图片/JS 等之前访问过的数据缓存起来,可以理解为存在本地,下次再需求的时候,就直接从本
地读取,不过需要注意缓存的有效期
不同网络类型设计不同的访问策略:4G 网络:默认不显示大图,不允许下载等
2 Android APP 的电量测试
2.1 采用系统自带的电量统计工具
2.2 使用 GT 工具统计电量消耗
下载地址:https://gt.qq.com/download.html
具体的操作流程可以参考 GT 文档库的内容:https://gt.qq.com/docs.html
仅用 GT 应用(apk)即可完成如下针对被测应用的测试工作:
1.基础性能测试(CPU、内存、网络流量、流畅度/帧率、电量等)
2.Logcat 日志查看与保存
3.网络数据包抓包,支持 Android4 和 Android5
4.手机电流电量测试,应用耗电评估
操作步骤:
设置需要监控的参数,启动后会在屏幕上正在监控
第 3 页 共 20 页
未经作者本人同意,不得转载,不得用于商业用途,否则视为侵权!
作者:酷酷木女侠
下面图中是选择了微信进行监控,如图所示
第 4 页 共 20 页
未经作者本人同意,不得转载,不得用于商业用途,否则视为侵权!
作者:酷酷木女侠
3 Android APP 的弱网络测试
3.1 fiddler 工具使用
手机与 fiddler 的连接,这里讲 IOS 手机与 fiddler 的连接
下载 fiddler:
http://www.telerik.com/download/fiddler
你也可以随便百度一下,下载地址挺多的,这里就不多介绍了
安装 fiddler,这个直接下一步下一步,安装不用多说,对了,安装的时候电脑上要安装有.net 按照提示操作
就 OK
1、打开 fiddler,勾选红框中的内容--按照步骤来哦
第 5 页 共 20 页
未经作者本人同意,不得转载,不得用于商业用途,否则视为侵权!
作者:酷酷木女侠
2、重启 fiddler,这一步很重要,若是不重启,设置是不会生效的
3、查看本机 IP 地址(PC 电脑)可以在开始菜单-运行-cmd-ipconfig/all,
也可在 fiddler 上面直接查看,很简单的哈,看好图中的小红框
第 6 页 共 20 页
未经作者本人同意,不得转载,不得用于商业用途,否则视为侵权!
作者:酷酷木女侠
3、IOS 手机设置代理
对了这里要说明一下,PC 电脑要手机连的一个网络,如图设置服务器和端口号,就可以了
第 7 页 共 20 页
未经作者本人同意,不得转载,不得用于商业用途,否则视为侵权!
作者:酷酷木女侠
4、按照以上的设置,我们就算这是完毕了,这时候在手机上访问,fiddler 就可以看到请求了,下图是部分
是打开网易新闻 APP 的请求
第 8 页 共 20 页