2、app性能测试常见指标:
1)、内存
2)、CPU
3)、流量
4)、电量
5)、启动速度
6)、滑动速度、界面切换速度
7)、与服务器交互的网络速度
Android性能测试分为两类:
1、一类为rom版本(系统)的性能测试
2、一类为应用app的性能测试
①Android的app性能测试包括的测试项比如:
a.资源消耗
b.内存泄露
c.电量功耗
d.耗时
e.网络流量消耗
f.移动终端相关资源利用率
g.帧率
h.渲染等等….
②工具:GT、Emmagee、itest等(工具的原理都是基于调用android底层的一些api来获取到测试所用到的值)
③测试方法:
a.设计场景 :手工或自动化场景;
b.获取数据:可获取的数据包括:内存、cpu、电量功耗、hprof(内存泄露分析文件)、响应时间等等。。。。配合手工或自动化场景来获取
数据(最好多取几次而且每次配合不同的设备看平均值)作为最后的对比分析;
c.结果分析 :拿到数据后分析哪些模块的数据异常再去Check code定位问题的原因。
④Android系统的几种场景状态:
a.空闲状态: 指打开应用后,点击home键让应用后台运行,此时应用处于的状态叫做空闲;
b.中等规格和满规格状态:中等规格和满规格指的是对应用的操作时间的间隔长短不一,中等规格时间较长,满规格时间较短。
3、app稳定性测试
①安卓APP的稳定性常常使用monkey命令进行测试,通过随机事件流模拟人的操作,对检查程序的内存溢出、空指针有很大的作用。
②Monkey主要用来检测系统ANR及Crash等问题。
ANR的全称是application not responding,根据它的意思我们就能看出来是应用程序未响应,就像是我们在电脑上碰到的 程序未响应,一般电脑出现这种情况,可能是由于我们打开了很多应用程序,占用了大量的内存,或者CPU时间片被一个应用 程序长时间占用,不够分配,导致部分应用程序出现了无响应。
下图就是我们见到的APP无响应的时候出现的对话框,产生ANR的原因很多,但是只有在Activty中的ANR才会弹出对话框, 对话框有两个选项,一个是等待,一个是关闭程序供用户选择:
ANR产生的条件:
1、只有主线程才会产生ANR,主线程就是UI线程;
2、必须发生某些输入事件或特定操作,比如按键或触屏等输入事件,在BroadcastReceiver或Service的各个生命周期调用函数;
3、上述事件响应超时,不同的context规定的上限时间不同
ANR产生的环境:
1、5秒内无法对输入事件(按键及触摸)做出响应
2、广播接收器无法在10秒内结束运行
具备了以上三个条件,那么加上这两个环境,就会产生ANR了。