Monkey相关参数  笔记

Monkey是Android系统自带的一个命令行工具,可运行在模拟器里或实际设备中。

Monkey可以向被测试的应用程序发送伪随机的用户事件流(如按键、触屏、手势等),实现对应用程序进行测试的目的。

Monkey是Android自动化测试的一种手段,在模拟器上运行时,若触发了点击、触摸、手势等操作,就会产生随机脉冲信号。

可以通过Monkey用随机重复的方法对应用程序进行稳定性、健壮性方面的测试。

一、基本参数

1.--help 打印帮助信息

2.-v 指定打印信息的详细级别,多一个-v,就增加一个信息的详细级别,级别如下:

默认级别0:-v 只打印启动信息,测试完成信息和最终结果信息;

级别1:-v-v 打印执行时的信息,如发送事件;

级别2:-v-v-v 打印最详细信息。

二、约束条件

1.-p (允许执行的包名列表)若此参数指定了一个或几个包,monkey将只允许指定的系统启动这些包里的Activity。

一个-p只能指定一个包,指定多个包需使用多个-p选项。若不指定包,则默认启动系统里全部包的Activity。

2.-c  该参数是指定意图的分类,monkey只会启动可以处理这些种类的意图的活动。

若没设置该选项,则monkey将选择下列类别中列出的Activity Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY。

若要指定多个类别,需使用多个-c,一个-c只能用于一个类别。

三、事件参数

1.-s (seed)随机种子。用相同的seed值运行Monkey将生成相同的事件序列。

2.--throttle 在事件之间插入固定延迟,可以减缓Monkey执行速度。单位:毫秒。

3.--pct-touch <percent> 调整触屏事件的百分比。触摸事件是个down-up事件,发生在屏幕上某一位置。

4.--pct-motion <percent> 调整滑动事件的百分比。滑动事件是在某一位置按下手指,滑动一段距离再将手指抬起的手势。

5.--pct-trackball <percent> 调整轨迹球事件的百分比。轨迹球事件由一个或几个随机的移动组成,有时还伴有点击。

6.--pct-nav <percent> 调整基本导航事件的百分比。基本导航事件:模拟方向性设备输入向上、向下、向左、向右的事件。

7.--pct-majornav <percent> 调整主要导航事件的百分比。这些导航事件通常引发图形界面中的动作,如:单击BACK键、MENU键。

8.--pct-syskeys <percent> 调整系统按键事件的百分比。这些按键通常被保留,由系统使用,如:Home、Back、拨号、挂断及音量控制键。

9.--pct-anyevent <percent> 调整其他类型事件的百分比。包括所有其他类型的事件,如:普通按键、不常用的设备按钮等。

10.--pct-appswitch <percent> 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity() 函数最大程度覆盖包中全部Activity的一种方法。

四、调试参数

1.--dbg-no-events :设置此选项,Monkey将执行初始启动,进入到一个测试Activity,不会再进一步生成事件。

将它与 –v 、-p、和—throttle等参数一起使用,并让Monkey运行30秒或更长时间,从而可以观测到应用程序所调用的包与包之间的切换过程。

2.--hprof :设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。这将会在data/misc目录下生成大文件(5Mb左右),所以要小心使用。

3.--ignore-crashes :通常,当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。若设置此选项,Monkey将继续向系统发送事件,直到计数完成。

4.--ignore-timeouts :应用程序发生任何超时错误(如“Application Not Responding”对话框)时,Monkey将停止运行。

设置 --ignore-timeouts 选项,Monkey将继续向系统发送事件,直到计数完成。

5.--ignore-security-exceptions :当应用程序发生权限错误时,Monkey将停止运行。设置此选项,Monkey将继续向系统发送事件,直到计数完成。

6.--ignore-native-crashes :当应用发生底层C/C++代码引起的崩溃事件时,Monkey将停止运行。

若设置 --ignore-native-crashes 选项,Monkey将继续向系统发送事件,直到计数完成。

7.--monitor-native-crashes :监视并报告Android系统中AndroidC/C++引起的崩溃事件。若设置—kill-process-after-error,系统将停止运行。

8.--kill-process-after-error :当Monkey由于一个错误而停止时,出错的应用程序将继续处于运动状态。设置该选项,将会通知系统停止发生错误的进程。

当Monkey正常执行完毕,它不会关闭所有启动的应用,设备依然保留Monkey结束时的状态。

9.--wait-dbg :启动Monkey后,先中断其运行,等待调试器和它相连。

五、参数示例

1.-s :种子数相同,则两次测试所产生的事件序列也相同,便于复现BUG。

第一次输入:adb shell monkey –v –p com.android.calendar 1000

第二次输入:adb shell monkey –v –p com.android.calendar 1000

两次输入的随机种子数都是1000,则测试效果相同,产生的模拟用户操作序列一致,两次测试产生的随机序列相同。

“com.android.calendar”为日历应用的包名(查看包名详见个人随笔:adb相关指令)。

2.-p :指定一个或多个包进行测试。

adb shell monkey 1000 向系统随机发送1000个伪随机事件序列

adb shell monkey -p com.android.deskclock 1000  向桌面时钟应用随机发送1000个伪随机事件序列

adb shell monkey -p com.android.deskclock -p com.android.calendar 1000

向桌面时钟和日历这两个应用随机发送1000个伪随机事件序列

3.--throttle :用于指定随机事件的延时。

adb shell monkey -p com.android.deskclock --throttle 2000 1000

向桌面时钟应用发送1000次随机事件序列,序列执行的时间间隔为2000毫秒,即2秒。

4.--pct-touch <percent> :设置触屏事件的百分比。

adb shell monkey --pct-touch 60 -p com.android.deskclock  1000

向桌面时钟应用发送1000个伪随机事件序列,其中触屏事件占60%。

5.--pct-motion <percent> :设置滑动事件的百分比。

adb shell monkey --pct-motion 60 -p com.android.deskclock  1000

向桌面时钟应用发送1000个伪随机事件序列,其中滑动事件占60%。

6.--pct-trackball <percent> :设置轨迹球事件的百分比。

adb shell monkey --pct-trackball 60 -p com.android.deskclock  1000

向桌面时钟应用发送1000个伪随机事件序列,其中轨迹球事件占60%。

7.--pct-nav <percent> :调整基本导航事件的百分比。

adb shell monkey --pct-nav 60 -p com.android.deskclock  1000

向桌面时钟应用发送1000个伪随机事件序列,其中基本导航事件占60%。

8.--pct-majornav <percent> :调整主要导航事件的百分比。

adb shell monkey --pct-majornav 60 -p com.android.deskclock  1000

向桌面时钟应用发送1000个伪随机事件序列,其中主要导航事件占60%。

9.--pct-syskeys <percent> :调整系统按键事件的百分比。

adb shell monkey --pct-syskeys 60 -p com.android.deskclock  1000

向桌面时钟应用发送1000个伪随机事件序列,其中系统按键事件占60%。

10.--pct-anyevent <percent> :调整其他类型事件的百分比。

adb shell monkey --pct-anyevent 60 -p com.android.deskclock  1000

向桌面时钟应用发送1000个伪随机事件序列,其中其他类型事件占60%。

11.--pct-appswitch <percent> :调整启动Activity的百分比。

adb shell monkey --pct-appswitch 60 -p com.android.deskclock  1000

向桌面时钟应用发送1000个伪随机事件序列,其中主要覆盖包中60%的活动。

12.--ignore-crashes :应用程序崩溃或发生任何失控异常时,Monkey继续向系统发送事件,直到计数完成。

adb shell monkey -p com.android.deskclock –ignore-crashes 1000

向桌面时钟应用发送1000次随机事件,无论该应用程序是否崩溃,此命令都会执行完1000次随机事件的发送。

13.--ignore-timeouts :应用程序发生任何超时错误,Monkey将继续向系统发送事件,直到计数完成。

adb shell monkey -p com.android.deskclock –ignore-timeouts 1000

向桌面时钟应用发送1000次随机事件,测试过程若出现ANR错误,此命令仍会发送事件至1000次为止。

14.--ignore-security-exceptions :当应用程序发生权限错误,Monkey将继续向系统发送事件,直到计数完成。

adb shell monkey -p com.android.deskclock –ignore-security-exceptions 1000

向桌面时钟应用发送1000次随机事件,测试过程若出现证书许可、网络许可错误,此命令仍会发送事件至1000次为止。

六、终止 Monkey 进程

1.执行 adb reboot 命令重启设备,进程被终止。

2.在终端执行命令:

1)adb shell

2)ps| grep monkey     (查看手机后台monkey进程,第一串数字就是后台运行程序的id数)

3)kill pid id       (运行kill命令杀死进程)

Monkey相关参数 笔记的更多相关文章

  1. Kafka 学习笔记之 High Level Consumer相关参数

    High Level Consumer相关参数 自动管理offset auto.commit.enable = true auto.commit.interval.ms = 60*1000 手动管理o ...

  2. Mysql Innodb 引擎优化-内存、日志、IO、其他相关参数

    介绍: InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色增加 ...

  3. iftop 安装以及相关参数及说明(转载自csdn)

      转载自http://blog.csdn.net/cqinter/article/details/6250211 关于 Iftop iftop 是类似于top的实时流量监控工具.主要用来显示本机网络 ...

  4. PostgreSQL数据库postgresql.conf部分相关参数

    listen_addresses:#指定数据库用来监听客户端连接的TCP/IP地址,默认是值是* ,表示数据库在启动以后将在运行数据的机器上的所有的IP地址上监听用户请求,可以写成机器的名字,也可以写 ...

  5. monkey基本命令参数详解示例

    Monkey基本命令参数 参数名 基本功能 举例 -p 参数-p用于约束限制,用此参数指定一个或多个包(Package,即App).指定 包之后,Monkey将只允许系统启动指定的APP.如果不指定包 ...

  6. Oracle并行事务回滚相关参数及视图

    /******相关参数****/fast_start_parallel_rollback1.取值有3种:false,low,high2.各值含义:false  ---禁用并行回滚功能          ...

  7. Linux TCP队列相关参数的总结 转

        在Linux上做网络应用的性能优化时,一般都会对TCP相关的内核参数进行调节,特别是和缓冲.队列有关的参数.网上搜到的文章会告诉你需要修改哪些参数,但我们经常是知其然而不知其所以然,每次照抄过 ...

  8. JVM相关参数配置和问题诊断<转>

    原文连接:http://blog.csdn.net/chjttony/article/details/6240457 1.Websphere JVM相关问题诊断: 由JVM引起的Websphere问题 ...

  9. Linux TCP队列相关参数的总结

    作者:阿里技术保障锋寒 原文:https://yq.aliyun.com/articles/4252 摘要: 本文尝试总结TCP队列缓冲相关的内核参数,从协议栈的角度梳理它们,希望可以更容易的理解和记 ...

随机推荐

  1. Dapp的PVP发模式--magic-maze-2d游戏解读

    前言: 未来基于Dapp的游戏可能会多起来吧, 尤其是博彩类游戏, 由于区块链匿名特性, 加之数字货币不受国家监控, 几乎成了一个法外之地. 大量游戏团队都往之涌入. 今天讲讲当前Dapp的一种游戏模 ...

  2. Mysql远程访问报错2003

    如果没有权限新建一个mysql用户给添加远程连接的权限(推荐设置) 1.例如,你想admin使用123456从任何主机连接到mysql服务器的话. GRANT ALL PRIVILEGES ON *. ...

  3. DJango 前三天小结

    一 DJango 所有命令: 1下载: 控制台:pip install django== ​pip install django== -i 源解释器:找到解释器,点击加号搜索django 2创建项目; ...

  4. mock数据,尽量随机,1次插入多条

    建表,多设置一个字段id_tmp create table if not exists mall_data.dtw_mall2_adm_customer_d_tmp( id_tmp string co ...

  5. 软件开发者路线图梗概&书摘chapter7

    软件工程是一门技艺 原因:理解不足以系统化 技能:为交付可以工作的软件 重要的原因:了解不足以将它写成可供别人直接运用并得到相同成果的格式 大多数程序员低于平均水平 工艺:一套高度重视技能的训练和传统 ...

  6. 为什么要学习socket

    为什么要学习socket socket历史悠久.它们的使用始于 1971年的ARPANET,后来成为1983年发布的Berkeley Software Distribution(BSD)操作系统中的A ...

  7. Xshell5一打开就提示要使用该程序,请更新至最新版本

    网上有两种方法 方法一:临时 修改系统时间,修改为一年前的时间即可.但是你会发现修改回当前时间后,xshell又打不开了 方法二:替换xshell文件 找到xshell安装位置,如果是快捷方式,可以右 ...

  8. Python argparse用法

    import argparse import sys parser = argparse.ArgumentParser(description='this is for test.') parser. ...

  9. MySQL必知必会第十一章-

    使用数据处理函数 大多数SQL支持以下类型的函数: 1> 文本函数:用于处理文本串(删除或填充值,转换值为大写或小写) 2> 数值函数:用于在数值数据上进行算术操作(返回绝对值,进行代数运 ...

  10. MySQL事务锁问题-Lock wait timeout exceeded

    转载:https://cloud.tencent.com/developer/article/1356959 问题现象:   接口响应时间超长,耗时几十秒才返回错误提示,后台日志中出现Lock wai ...