最近一直在研究monkey测试。网上资料很多,但都是一个抄一个的。原创的很少

我把检查app内存泄漏的情况梳理一下:

参考资料:

  • Monkey测试策略:https://testerhome.com/topics/597
  • Android Monkey测试详细介绍:http://www.jikexueyuan.com/course/1619.html
  • Monkey总结:https://testerhome.com/topics/3517
  • http://www.linuxidc.com/Linux/2014-03/97563.htm
  • https://www.cnblogs.com/jinjiangongzuoshi/p/5203738.html

首先基础的monkey测试,之前讲过。参照以前文档

在monkey测试的同时我们需要关注的一个点。

内存检测

内存检测用批处理脚本记录,约5秒记录一次:

脚本如下,保存为bat文件

@echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
::@mode con lines=18 cols=50set package1=com.xxxx.xxxxxadb shell dumpsys meminfo %package1% | findstr "Pss" > ./info_1.txt:start
adb shell dumpsys meminfo %package1% | findstr "TOTAL" >> ./info_1.txtecho.
echo.
ping -n 5 127.1>nul
goto start

我们先可以看一下基础的命令,查看应用内存的命令:adb shell dumpsys meminfo (进程名)

这里得到的信息非常多,重点关注如下几个字段:

(1) Native/Dalvik 的 Heap 信息

具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。

(2) Total 的 PSS 信息

这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。

所以我们运行上面的bat文件。得到的数据是这样的:

右边三列,如果执行了用户事件流10万次后,发现数值一直在增长,那么很有可能是内存泄漏了。

左边第一列,表示app占据内存的大小,比如开四个app程序同时,我们可以比较哪个程序最占用内存,就是通过这个数据!

cpu检查:

bat脚本为

@echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
::@mode con lines=18 cols=50set package1=com.xxxx.xxxxxadb shell top -n 1 | findstr "PID" > ./cupInfo_1.txt:start
adb shell top -n 1 | findstr %package1% >> ./cupInfo_1.txtecho.
echo.
ping -n 5 127.1>nul
goto start

用到的是adb shell top 命令参考文档:http://blog.csdn.net/kittyboy0001/article/details/38562515

PID   进程id
PR    优先级
CPU%  当前瞬时CPU占用率
S     进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程
#THR  程序当前所用的线程数
VSS   Virtual Set Size  虚拟耗用内存(包含共享库占用的内存)
RSS   Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PCY   调度策略优先级,SP_BACKGROUND/SP_FOREGROUND
UID   进程所有者的用户id
Name  进程的名称

*最好的办法是做一个Excel图表,把对比数据列出来

转载于:https://www.cnblogs.com/botoo/p/7940998.html

monkey测试===通过monkey测试检查app内存泄漏和cpu占用相关推荐

  1. 精华阅读第 13 期 |常见的八种导致 APP 内存泄漏的问题 1

    2019独角兽企业重金招聘Python工程师标准>>> 本期是移动开发精英俱乐部的第13期文章,都是以技术为主,所以这里就不过多的进行赘述了,我们直接看干货内容吧!本文系ITOM管理 ...

  2. APP内存泄漏怎么办,我教你

    1.简介 你们可能会想到使用MAT,但是效率不是很高,对于一个内存泄漏问题,可能要进行多次排查和对比才能找到问题原因. 所以我推荐你们用Square公司基于MAT开源的LeakCanary 2.提示方 ...

  3. nuxt.js之SSR服务端内存泄漏导致CPU过高的解决过程

    问题 最近在公司维护nuxt项目时,线上遇到了一个问题--访问网站,网站会报502或者JS.css资源报502. 去运维那一查pm2,项目node服务器的CPU达到了100%,实际上这段时间并没有人访 ...

  4. Linux下如何发现内存泄漏问题(测试角度)

    目录 一.内存泄漏的概念 二.测试方法 1.长期稳定性测试 2.大数据量测试 3.结合free.top等命令进行资源监控 4.持续观察上层应用运行情况 5.查看日志 6.检查代码 一.内存泄漏的概念 ...

  5. 移动端测试=== 两个概念 内存泄漏 和 内存溢出 【转】

    关于内存在一块其实我并不是很想拿出来说,一般情况下内存这一块都是可优化的,可以通过硬件资源或者调整一些系统或者应用系统的参数配置来进行优化. 很多同僚问到了"内存泄漏"和" ...

  6. Android内存泄漏的简单检查与分析方法

    导语 内存泄漏问题大约是Android开发者最烦恼的问题之一了,项目中连续遇到几个内存泄漏问题,这里简单总结下检查分析内存泄漏的一些工具与方法. 一.什么是内存泄漏? 大家都知道,java是有垃圾回收 ...

  7. 【腾讯优测干货分享】Android内存泄漏的简单检查与分析方法

    本文来自于Dev Club 开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d14047603a5bf1242ad01b 导语 内存泄漏问题大约是An ...

  8. Android内存泄漏的检测流程、捕捉以及分析

    https://blog.csdn.net/qq_20280683/article/details/77964208 Android内存泄漏的检测流程.捕捉以及分析 简述: 一个APP的性能,重度关乎 ...

  9. 内存溢出和内存泄漏的定义,产生原因以及解决方法(面试经验总结)

    一.定义(概念与区别) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory:比如申请 了一个integer,但给它存了long才能存 ...

最新文章

  1. Docker安装及配置
  2. c语言 地址+1,C语言中,为什么指针表达式的值+1.对应的地址值却+4?/为什么两个数组元素的地址相减之差不为地址之差?...
  3. C# 读取网页源码的三种办法WebClient、WebRequest、HttpWebRequest
  4. Windows下文件名或目录的简写
  5. Nacos 集群集成SpringBoot2.x 微服务_02
  6. 华为云发布国内首个 AI 模型市场,加速企业 AI 应用落地
  7. TCL语言笔记:TCL过程控制练习
  8. 一个导出redis有序集合sorted-sets的shell脚本
  9. 4、RH850 F1 定时器OSTM功能和配置
  10. 在线计算机系统考试测试题,最新计算机考试题库及答案.docx
  11. python登录判断用户名和密码_第一个python程序-判断登陆用户名和密码是否正确...
  12. 独家策划-----让“超女”和“好男”联姻
  13. JVM 性能调整的一些基本概念
  14. 单片机测量脉宽c语言程序,利用51系列单片机定时器功能实现测量脉冲宽度
  15. JavaScript 扁平化数组转成Tree
  16. SQL SERVER 经典语句大全必学(3)——技巧篇
  17. 结合实战,浅析GB/T28181(七)—— 球机云台控制
  18. 618投影仪怎么选?看看极米NEW Z6X、极米Z6X Pro与极米H3S
  19. 计算机专业论文的创新点怎么说,计算机专业的毕业论文怎么写
  20. 勇士主场为什么叫oracle,再见甲骨文,十年过去了,金州勇士除了复刻经典,还要再造传奇!...

热门文章

  1. python 生成器表达式_Python中的列表理解与生成器表达式
  2. android 队列上传图片,话说android端七牛图片上传
  3. c++中stack容器
  4. linux系统编程之进程概念(操作系统---管理,进程创建,进程状态,进程优先级, 环境变量,程序地址空间,进程O(1)调度方法)
  5. Linux系统【五】进程间通信-共享内存mmap
  6. 【C++11新特性】 C++11智能指针之weak_ptr
  7. 计算机组成原理(一)计算机系统概述
  8. 1091 N-自守数 (15 分)
  9. Java进阶之光!javaunicode码转字符
  10. Java面试题及答案,java底层实现原理