0
回答
android性能测试的要点分析
华为云实践训练营,热门技术免费实践!>>>   

 

Android的app性能测试包括的测试项比如:

1、资源消耗

2、内存泄露

3、电量功耗

4、耗时

5、网络流量消耗

6、移动终端相关资源利用率

7、帧率

8、渲染

 

 

内存篇

 

内存测试中的测试子项:

1)空闲状态下的应用内存消耗情况

2)中等规格状态下的应用内存消耗情况

3)满规格状态下的应用内存消耗情况

4)应用内存峰值情况

5)应用内存泄露情况

6)应用是否常驻内存

7)压力测试后的内存使用情况

 

内存问题现象:

1)内存抖动

2)大内存对象被分配

3)内存不断增长

4)频繁GC

 

android检查内存泄露步骤:

1、运行Monkey进行压力测试:

adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50

2、监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令:

adb shell dumpsys meminfo cn.microinvestment.weitou(进程名)

如果发现内存过大,则保存HPROF文件:adb shell am dumpheap <进程名> <保存路径>

3、分析hprof文件

用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件

在Android SDK tool里面有个hprof-conv命令:

hprof-conv <原HPROF文件路径> <转换后的HPROF路径>

hprof-conv a.hprof b.hprof

4、用MAT工具打开转换后的HPROF文件

一般选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,如果有多个相同的对象,则会存在内存泄露的问题)

 

CPU篇

 

CPU测试中的测试子项:

1)空闲状态下的应用CPU消耗情况

2)中等规格状态下的应用CPU消耗情况

3)满规格状态下的应用CPU消耗情况

4)应用CPU峰值情况

 

 

流量篇

 

概念:

中等负荷:应用正常操作

高负荷:应用极限操作

 

流量测试中的测试子项:

1、应用首次启动流量值

2、应用后台连续运行 2 小时的流量值

3、应用高负荷运行的流量峰值

4、应用中等负荷运行时的流量均值

 

GPU篇(FPS)

 

概念:

过度绘制: 界面显示的activity套接了多层而导致

帧率:屏幕滑动帧速率

帧方差: 屏幕滑动平滑度

**FPS:**Frames Per Second 每秒显示的帧数 根据人眼的生理结构,帧率高于24时就被认为是连贯的。对于游戏画面30fps是最低能接受的,60fps逼真感,如果帧率高于屏幕刷新频率就是浪费。要达到30fps,每帧所占用的时间要小于33毫秒

 

GPU测试中的测试子项:

1、界面过度绘制

2、屏幕滑动帧速率

3、屏幕滑动平滑度

 

过度绘制测试:(人工进行测试)

打开开发者选项中的显示GPU过度绘制(Debug GPU overdraw)

验收的标准:

1、不允许出现黑色像素

2、不允许存在4x过度绘制

3、不允许存在面积超过屏幕1/4区域的3x过度绘制(淡红色区域)

 

屏幕滑动帧速率测试:

1.手机端打开开发者选项中的启用跟踪后勾选Graphics和View

2.启动SDK工具Systrace,勾选被测应用,点击Systrace,在弹出的对话框中设置持续抓取时间,在trace taps下面勾选gfx及view选项

3.手工滑动界面可以通过节拍来进行滑动或者扫动,帧率数据会保存到默认路径下,默认名称为trace.html

4.将trace.html文件拷贝到linux系统下通过命令进行转换,生成trace.csv文件

grep 'postFramebuffer' trace.html | sed -e 's/.]\W//g' -e 's/:.*$//g' -e 's/.//g' > trace.csv

5.用excel打开文件计算得到帧率

 

屏幕滑动平滑度的测试:

方法如同帧率测试,唯一的差异就是最后的结果计算公式的差异

 

 

TestBird

<无标签>
举报
fiawfo
发帖于5个月前 0回/26阅
顶部