APP的性能测试(三)
之前有介绍过关于APP做性能测试用到monkey命令,这次结合monkey命令以及DDMS工具监控APP内存、MAT工具分析内存泄漏问题。
1.首先安装要测试的APP到手机上,登录adb shell (之前详细步骤上一章有讲过,就不再讲解了,就是先进入adb环境),打开eclipse,找到DDMS,如图
DDMS工具能自动检测到电脑设备已连接上的手机或者虚拟机。
2.用随机模拟次数命令 :adb shell -p 包名 -v 次数,运行该APP ,运行过程中点击heap视图下该运行过程的update heap 按钮,然后点击Gause GC按钮,如下图所示:
上图中的?就是我要监控的APP.......
3.分析数据:
DDMS 中使用Heap视图来分析的话,基本上就查看1个数据
在Data object 中有叫Total Size的数据。具体的含义就是当前进程中Java的对象所占用的内存总量。
4.判断依据:
一般情况下我的分析是这样的:
a.不断在手机上操作一个功能,如果该数据在不断地增加,则判定该功能模块存在内存泄露问题。
b.如果反复操作该功能之后,有一定范围的起伏,但是又被稳定在某一个有限的范围内,则说明代码良好。
C.如果有效内存手机,可能会出现程序被kill,但是程序被kill并不能代表程序一定有内存泄露。
5.点击Dump Hprof File 按钮,可以把监控结果导出成后缀名为.hprof的文件,经过转换后,可用MAT工具打开分析具体的结果。
如下图:
6.进入adtsdktools目录中,可以找到一个hprof-conv.exe的文件,如下图所示
7.进入之前运行monkey命令的cmd 页面 ,用cd命令:cd 进入你的adtsdktools目录中,我的安装在D盘,直接用命令 cd D:adtsktoos进入,使用命令hprof-conv.exe 刚才保存.hprof的文件地址文件名 现在保存的文件路径文件名 ,这是一个转换过程,文件的后缀名不变,如下图所示:
如图所示这样我就把文件名为1019.hprof的文件转换成1.hprof的文件,这个转换过程是为了能用MAT工具打开,直接从DDMS工具导出的文件,直接用MAT工具是打不开的(MAT工具只能打开从Jconsole,jvisualvm导出的.hprof文件,这两个工具也是监控Java的,下次有机会再讲)。
8.用MAT(MemoryAnalyzer )工具打开刚才生成保存的1.hprof文件,可以看到APP性能测试的具体报告详情,如下图所示:
点开Details可以看到具体的问题分析,做到这个步骤,一个利用DDMS、MAT工具分析内存泄漏也就大致完成了,剩下的事情,就是把这个报告发给开发取解决问题吧......
好久没写文章了,最近负责的项目正处于测试阶段,经常加班比较忙,能抽出一点时间写文章我都佩服我自己.....
下次讲下APP兼容性测试以及其他的监控工具来协助我们做APP性能测试,这一期就到这吧。
一起学习,共同进步!
2017.11.9
By Tiger
相关推荐
- 学习测试遇到的坑(三)
- 关于Int自增字段和GUID字段的性能测试。只有测试,没有分析,呵呵
- 浅谈第三方电子支付平台测试方法的研究
- 专访三星高级工程师 Joonyong Park:Adaptive Performance 让游戏的高性能和高画质二者兼得
- 三、大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
- 提高 iOS App 通知功能启用率的三个策略
- 吃死这份333页的Android 性能优化PDF宝典,三大核心内容,我把阿里面试官给怼回去了
- 叼!阿里Mysql三位封神专家总结800页性能优化的千金良方
- 直播间搭建需要避免的三点要素,开发直播app软件并不简单
- 【AMAD】splinter -- 用于测试web app的python框架
- android 4.3以上修改DNS流程(netd)
- udhcp源码详解(二)之定义的结构体