一般Android App的测试过程,常用的Monkey选项如同官网中所列,但如果看Monkey源代码或则通过 monkey --help,还是能找到一些有意思的东西。
其中,有2个网页中没有提到的选项。

  1. --bugreport
  2. --hprof

bugreport 其实对应的是一个叫做bugreport的工具,可以运行adb bugreport观察,它提供了那个时刻系统非常多的信息,从meminfo,cpuinfo,vmstat到dmesg,buildprop等信息,多到想不到。有兴趣的,可以google之。
当这个标签在Monkey的运行中标识的时候,每当Monkey运行时发现AppCrash,anr,system not responding的时候,Monkey就会自动记录错误时的信息。

    // Write the bugreport to the sdcard.private void getBugreport(String reportName) {reportName += MonkeyUtils.toCalendarTime(System.currentTimeMillis());String bugreportName = reportName.replaceAll("[ ,:]", "_");commandLineReport(bugreportName + ".txt", "bugreport");}

可以在 /mnt/sdcard里面找到类似于app_crashnet.crimoon.pm.a91_2014-07-29_01_01_22.990_.txt 这样的文件。每个问价有15MB到20MB大小,内容翔实,乃是开发debug之宝。

hprof的作用就是,在monkey开始之前和结束之后(正常结束,被kill的不算),会调用如下代码

    /*** Send SIGNAL_USR1 to all processes. This will generate large (5mb)* profiling reports in data/misc, so use with care.*/private void signalPersistentProcesses() {try {mAm.signalPersistentProcesses(Process.SIGNAL_USR1);synchronized (this) {wait(2000);}} catch (RemoteException e) {System.err.println("** Failed talking with activity manager!");} catch (InterruptedException e) {}}  

这个代码的作用,就是对于所有persistent的process,获取它的hprof信息,类似于对于所有的persistent应用 kill -10 pid。它的好处也不言而喻,hprof文件出来了,找内存泄漏还远么。
有一点要吐槽的是,注释里面明明说 /data/misc里面记录该文件,实际上,还是保存在了 /mnt/sdcard 里面。文件名类似于 com.aliyun.ams.assistantservice_hprof_dump20140728203235.prof。一般每个文件大约5MB,也看到过 com.android.systemui,比较夸张,有25MB。
可见,这个开关对于测试整个系统的内存泄漏,还是会有比较大的帮助的。

转载于:https://www.cnblogs.com/ruskee/p/5293290.html

有关Monkey命令的两个隐藏选项相关推荐

  1. Monkey测试4——Monkey命令行可用的全部选项

    Monkey命令行可用的全部选项 常规 --help 列出简单的用法. -v 命令行的每一个-v将增加反馈信息的级别. Level 0(缺省值)除启动提示.测试完成和最终结果之外,提供较少信息. Le ...

  2. monkey命令_随机测试工具猴子monkey

    随机测试工具猴子-monkey 一,什么是monkey? monkey是Android中的一个命令行工具,可以运行在模拟器和实际设备里, 它通过向系统发送伪随机的用户事件流(比如按键输入,触摸屏输入, ...

  3. Android自动化测试之Monkey命令使用及monkey脚本编写

    系列文章 Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解 Android自动化测试之Monkey使用及monkey脚本 ...

  4. app测试(手机自动化测试)----(含adb命令,monkey命令)

    [持续更新中] 1.环境搭建: (1). 安装 jdk1.8 [测试 java -version] [appium 运行需要] (2). 安装 sdk [appium 运行需要 ][不要写中文路径,不 ...

  5. adb与monkey命令的联合使用

    在移动自动化测试中,通常是需要adb命令和monkey命令的联合使用来进行测试,adb命令何其多,monkey命令也不少,组合起来让人头疼,本文讲列出一些常用的命令,帮助大家更好地进行移动自动化测试 ...

  6. monkey命令_何小伟:Monkey与MonkeyRunner区别

    为了支持黑盒自动化测试的场景,Android SDK提供了monkey和monkeyrunner两个测试工具,这两个测试工具除了名字类似外,还都可以向待测应用发送按键等消息,往往容易产生混淆,以下是他 ...

  7. Android 系统(212)---monkey实战–测试步骤、常用参数、常规monkey命令

    monkey实战–测试步骤.常用参数.常规monkey命令 [转]monkey实战–测试步骤.常用参数.常规monkey命令 ***(本文转自:https://blog.csdn.net/u01164 ...

  8. 计算机属性高级是灰色的,Win10文件夹属性隐藏选项为灰色不可勾选怎么办?

    Win10文件夹属性隐藏选项为灰色不可勾选怎么办?相約不如偶遇,如果您偶遇这个问题,可以尝试下面的方法,最可恨有些人将这个问题归咎于病毒,有些文件或者文件夹,实际属性如此,并非被病毒惦记上了.动不动就 ...

  9. 3D MAX入门篇(1)常用快捷命令及两种基础建模方式

    3D MAX入门篇(1)常用快捷命令及两种基础建模方式 基于图片的对程型模型----画线式建模 1.在界面画一个平面 2.调整平面大小,确认与要插入的图片尺寸一样 3.通过添加样条线绘制出模型的一半 ...

最新文章

  1. 诊断IIS中的ASP0115错误
  2. 1、SpringBoot整合JPA
  3. Java线程中的资源共享问题
  4. 溢信服务转型之代理商技术培训
  5. 【linux】linux 安装 redis
  6. Spring boot 连接Redis实现HMSET操作
  7. postgresql 先创建唯一主键 再分区_PostgreSQL 务实应用(三/5)分表复制
  8. 计算机中的进制位运算
  9. TE和TM主模式的介绍
  10. cocos2d-x-3.x 场景(3)场景切换特效
  11. netconsole 重定向kernel日志到远程服务器
  12. 2.Modbus通信协议-软件调试4个工具软件(推荐)
  13. 用matlab做bp神经网络预测,matlab神经网络怎么预测
  14. PC客户端(CS架构)如何实现抓包
  15. wps忘保存关闭,数据恢复步骤
  16. 推荐10篇2021年服装设计相关毕业论文文献
  17. duck typing
  18. 为什么ArrayList查询效率高,删除效率慢
  19. Golang seelog 使用入门简介
  20. 今天来个好玩儿的 “ 反射 ”

热门文章

  1. 如何解决系统补丁(KB971092)重复安装问题
  2. Flutter ScrollController not attached to any scroll views 异常
  3. jQuery源码解析(5)—— Animation动画
  4. Mr.J--Vue之v-cloak
  5. idea多级目录不展开的问题
  6. meta 标签的学习
  7. powerdesigner 生成实体代码 附加生成xml
  8. 使用cocoapods导入第三方类库后 头文件没有代码提示?
  9. IE6、7 a链接内图片加滤镜后导致a标签链接失效问题解决
  10. 数字电路中的建立时间与保持时间