app的内存测试也是性能测试中的重要指标,过高的内存占用会导致app发生卡顿,失帧、以及设备温度升高等,直导致app的使用体验,亦会导致直接被系统kill掉;持续的内存测试还可以看出app是否有内存泄漏等现象。
测试App:360手机卫士(com.qihoo360.mobilesafe)
测试环境:Windows+Python3.6
测试机型:华为mate 10 pro 安卓8.0.0(8核64G+6G)
本文涉及到的adb命令:“dumpsys meminfo”;dumpsys 命令是非常强大的,可以获取包括内存,cpu、流量、app编译信息等等。
操作:我们打开手机卫士的主页面,并保持卫士在前台页面,不做任何操作。
1、获取设备总内存:
命令:dumpsys meminfo | grep 'Total RAM'
结果:(6G内存)
2、获取app占用内存:
命令:dumpsys meminfo | grep package 或者 dumpsys meminfo package (pid)
结果:(可以看出详细的后台servers 以及zygote进程的内存占用,注:我们建议使用'dumpsys meminfo | grep package' 方式获取内存并相加,而 'dumpsys meminfo package' 所得出来的内存仅仅是zygote(native和dalvik)的主进程内存占用,并没有计算所有进程 的内存占用,看过好多文章,计算app内存占用时并没有计算所有进程的内存占用,此处需要注意!)
以下是dumpsys meminfo | grep com.qihoo360.mobilesafe结果:
以下是dumpsys meminfo com.qihoo360.mobilesafe 结果:(可以看出TOTAL内存大小和activities的内存大小近乎一致)
3、计算内存占用率(app占用总内存/系统总内存),持续打印结果:
详细内存占用结果:
4、结论
通过本次测试,可以看出app占用总内存为180MB左右,持续测试内存占比在3%左右,并没有发现内存异常现象,当然我们可以把测试数据存储到数据库并通过Echart等工具展示到web端,实时监测内存变化趋势。
5、总结
在实际测试用,首先,只对当前app测试,对各个版本的内存使用情况来对比,能够及时发现问题,并在发版前改正;其次,最主要的一点是对竞品的对比测试,能够及时发现自己的不足,及时优化产品,并挺高产品质量!
*完整代码,关注公众号后,留言获取!
-▼-
长按二维码关注Qutest(原SuperTester)定期分享技术干货,欢迎投稿!
Qutest