您的位置:首页 > 其它

关于monkey

2015-12-18 16:35 169 查看
这个是最近自己通过自学习后做的一个关于Monkey的总结,算是自己学习的一个见证:

Monkey程序是安卓系统下自带的一个测试工具,是用JAVA语言写成:java.jar,在安卓系统的路径为/system/bin/monkey.jar ,Monkey.jar是通过一个名为”monkey”的shell脚本来执行,这个shell脚本存放在android的如下目录/system/bin/monkey ,在执行monkey的shell脚本之前,我们需要配置一下环境。

当在真机上面执行monkey 命令的时候,我们只需要配置一个ADB的工具环境即可,你可以单独下载包含adb.exe的三个文件,也可以使用ADT包下面的,具体我们以ADT包下面的ADB环境配置为例。

 

假如你的ADT包放在E盘下,ADB在:

E:\adt-bundle-windows-x86-20130917\sdk\platform-tools下面。打开我的电脑-属性-环境变量,打开path一栏,填入E:\adt-bundle-windows-x86-20130917\sdk\platform-tools;

注意后面的 “;”是英文下的,不是中文的“冒号”。

配置好后WIN+R组合键,输入CMD打开命令窗口,输入ADB,会跑出一长串关于ADB的信息,表示你应经配置成功。

您此时可以连接手机真机在窗口命令执行monkey的测试了,当然前提是手机应经root了。

 

如果您需要使用模拟器运行monkey,那么您还需要做如下的环境配置

刚才ADT包下面包含了JDK,SDK,Eclipse ,请先安装JDK并配置相关的环境变量,仍然是打开我的电脑-属性-环境变量

Path下面填入:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;   其中 “;”是用来和其它的软件的路径互相隔离的,注意别漏掉

JAVA_HOME下面填入:C:\Program Files (x86)\Java\jdk1.7.0_45  这是JDK的安装路径

CLASSPATH下面填入:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

 

配好后请在CMD窗口输入:java -version,可以看到显示java的版本信息,表示已经配置成功。

输入 set path,可以看到各种程序的执行路径,以及path的值

输入set JAVA_HOME 可以看到JDK的安装目录

输入set CLASSPATH可以看到类装在路径

以上就是JDK的环境变量配置

 

 先简单的看一条Monkey命令:adb shell monkey -p com.tcl.gamecenter

这条命令是启动这个com.tcl.gamecenter ,这是一个APK的包名,启动这个APK,因为没有更多的参数去约束它,所以这条命令将会让这个APK漫无目的的运行下去,像个猴子一样在屏幕上面胡乱的点,随机性的。这里 -P是代表包名,一个-P后面都要跟一个包名,如果执行多个包名,就要跟多个-P。

在这里写下常用的各种参数的释义:

-p 后面接包名,一个-P后面接一个包名

-v logo日志的级别,
4000
命令行的每一个 -v 将增加反馈信息的级别。 Level 0( 缺省值 ) 除启动提示、测试完成和最终结果之外,提供较少信息。 Level 1 提供较为详细的测试信息,如逐个发送到 ActivITy 的事件。 Level 2 提供更加详细的设置信息,如测试中被选中的或未被选中的 Activity

-s 伪随机生产数的seed值,如果执行Monkey时使用相同的seed值,将会生产相同的事件序列,这个可以在重复验证修改的问题时加入相同的seed值

示例:adb shell monkey -s 2  -p com.tcl.gamecenter -v -v 10000

这条命令表示从生产monkey事件的seed值为2,生产的日志级别为level 1,执行10000次随机事件

其它的参数:

--throttle  延迟功能,减缓monkey的执行速度,是事件缓慢的被执行

--pct-touch 调整触摸事件的百分比

--pct-motion 调整动作事件的百分比

--pct-nav 调整“基本”导航事件的百分比

--pct-majornav 调整“主要”导航事件的百分比

--pct-syskeys 调整系统按键的百分比

--pct-appswitch 调整启动activity的百分比

--pct-anyevent 调整其它类型事件的百分比

--ignore-tiemouts 发生超时错误时,monkey会继续执行下去不会停止

--ignore-crashes 发生崩盘或者失控异常时,monkey会继续执行不会停止

--ignore-security-exceptions 发生许可错误时,monkey会继续执行不会停止

--kill-process-after-errors 当monkey由于一个错误停止时,应用程序会继续处于运行状态

--monitor-native-crashes监视并报告Android系统中本地代码的崩溃事件。如果设置了--kill-process-after-error,系统将停止运行

--wait-dbg停止执行中的Monkey,直到有调试器和它相连接

--dbg-no-events

设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约 束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。

--hprof

设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。这将会在data/misc中生成大文件(~5Mb),所以要小心使用它

 

一个比较长的示例:adb shell monkey -s 2 -p com.tcl.gamecenter -v -v 10000 --throttle 500 --pct-touch 0 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-errors 1>e:\error.txt 0<e:\info.txt

 

 补充:ANR信息查看路径

adb shell

cd data/anr/

ll traces.txt

执行monkey script的命令

adb shell monkey -f <scriptfile> <event-count>

<scriptfile>:需要执行的.script脚本,编写后push到手机里面

<event-count>代表执行的次数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: