测试人社区

安卓端专项测试之内存泄漏怎么测??

最近新入职一家公司 导师让测试APP的内存泄漏 之前没接触过这方面的 网上查了一些资料 居多的是使用Android Studio、LeakCanary工具;但我导师现在让我去看下其他比较直观的工具分析 ,我想问下有没有做过这方面的大佬呀? 现在测试这个的思路都还没有。。。

这个问题就是一种思路,先用工具看看一些核心场景有没有内存泄露,这个工具推荐用prefdog,当没有的话就过了,如果有的话,还是要通过Android studio 去确定白盒层面上面的代码问题;然后就这个产生一个问题,你不可能每个场景都去测,但是线上用户的行为又无法把控,才会通过接入leakcanary工具去dump 堆栈

leak canary还是挺有用的,不过有的时候不泄露也不代表没有内存占用问题。需要配合as的profile功能去diff测试前后的内存差异。

哇,思寒大佬。我是九期的学员,其中app.专项测试也有教这方面的。但是我跟我导师说了在as.里面profile.分析,他让我去找更直观的软件看,说这个有些太复杂。所以我不太清楚到底要怎么去测试分析这个内存泄露方面的了……

你好。我想问一下,刚开始用prefdog.这个工具看被测应用的内存,要不要对被测应用加压呀? 我之前没有对应用加压,正常的操作应用,内存曲线变化不大的。

在我理解,加不加压没啥影响。换句话来说,你要测试的是用户使用的核心场景,这些场景他的性能有没有问题;如果你使用遍历工具,他就是每个功能页面都点一次,没有场景性,只能说在这么乱点的情况下,性能的变化;
还有几个特别的场景内存变化:

  • 大图片的加载
  • 列表的加载
  • 视频的加载播放

感谢回复
但我还是有几个疑点:那我如果要测试一个APP是否有存在泄漏,是先分场景去测试?我之所以会想到要不要加压 因为我用perfdog这个工具来监控APP的内存使用情况 正常情况下内存变化不大的 所以想到加压这个;但是像那种monkey乱点的加压,我觉得意义不是很大。
一般测试内存有没有泄漏需要多长的时间呀? 像测试某个场景有没有泄漏应用需要执行多次才看得出吧?

是的,内存泄漏都是APP在比较低端的手机上面是否发生oom的情况,一般来说,都是看不出来的,但是这种又并不代表有问题,所以就涉及到内存的diff,但是来说不会太关注,只需要注意有没有明显的泄漏就好了
一个场景运行一天估计就差不多了

谢谢回复
还是有个问题想问一下 应用的某一个场景运行一天 这个可以用什么工具呀?

UI自动化工具------->appium、uiautomator、airtest等

好 大概的清楚了 谢谢啦