前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Monkey 做压力测试之余还可做内存泄露测试

Monkey 做压力测试之余还可做内存泄露测试

作者头像
厦门-安仔
发布2019-07-30 16:26:47
1.8K0
发布2019-07-30 16:26:47
举报

首先说3个测试内存泄露的三个动作,内存GC,退出测试app,关闭测试APP的进程的区别;

内存GC系统回收是回收无用的对象占用的空间,退出测试app不一定会就会GC,关闭测试APP直接就是所有内存都释放了,所以在测试内存过程中,要使用GC进行内存释放;

monkey压力测试内存泄露检查步骤如下:

一、搭建环境

要有SDK的配置环境,MAT内存分析工具(下载地址:https://pan.baidu.com/s/1rQ6A-DWEWWy2ZrPoJ78AAQ 密码:o0ls )

测试的apk一定要为debug包

二、monkey运行

根据业务场景用monkey进行压力测试,因为monkey是无理性随便点击会发现有很多重复性很高的操作,针对这个现象想到了内存分析~

注意:monkey 命令中不要使用忽略崩溃跟忽略超时错误关键词,命令为-ignore-crashes ,-ignore-timeouts,不然会导出的内存不是整体操作,因为闪退内存就释放了,

monkey运行,手机连接电脑,并且打开ddms的内存监控,运行结束后,点击GC

三、内存文件的获取跟转换

进入dos 输入命令:adb shell am dumpheap app包名 /data/local/tmp/xx.hprof (目的是生个一个hprof文件)

生成后你可以直接到手机data/local/tmp 进行查看有没有生成XX.hprof,然后把手机生成的hprof文件pull到本地电脑上,然后进入到改文件的目录下进行内存文件转化

转化命令为 hprof-conv xxx.hprof xxxx_1.hprof,其中xxx_1.hprof就是MAT内存工具要打开的内存文件。

具体案例步骤如下几图:

四、用MAT软件打开文件进行分析是否内存泄露常规方法

MAT软件打开内存文件后,一般有三种

1.Histogram

输入关键词activity,然后进行过滤,对于看Objects实例多的,进行分析,疑似内存泄露的,直接右击 选择Merge Shortest Paths to GC Root,并在选项中选择exclude all phantom/soft etc. references 。然后分析具体哪里内存泄露

2.Dominator Tree

输入关键词activity,然后进行过滤,会看到很多重复的activity,然后进行分析,发现疑似内存泄露的,就直接右击 选择Merge Shortest Paths to GC Root,并在选项中选择exclude all phantom/soft etc. references ,然后分析具体哪里内存泄露

3.OQL

输入:select * from instanceof android.app.Activity ,然后点击执行红色!图标

显示重复的Activit多的进行分析,发现疑似内存泄露的,就直接右击 选择Merge Shortest Paths to GC Root,并在选项中选择exclude all phantom/soft etc. references ,然后分析具体哪里内存泄露

三个方法图标

右键选择GC

另外:也可以进行文件对比,但前提就是 A操作完GC,生成内存文件1,然后继续操作,GC,再生成文件2,文件转换后,用MAT打开,选择Histogram,然后Navigation History 进行添加对比

总结:以上是我个人对Android 内存泄露 测试一些见解,小弟菜鸟一枚,有错误的,欢迎反馈,另外内存泄露也可以用ddms工具或者adb等方式测试内存~~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试一般不一般 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档