monkey常用命令详解
monkey命令参数

monkey命令参数Monkey是Android平台上一款压力测试工具,可以模拟用户的随机操作来检测应用程序的稳定性和性能。
它可以通过命令行参数来控制测试的行为,以下是一些常用的Monkey命令参数。
1.操作相关的参数:- `--pct-touch <百分比>`:触摸事件的百分比。
- `--pct-motion <百分比>`:滑动和拖动事件的百分比。
- `--pct-trackball <百分比>`:轨迹球事件的百分比。
- `--pct-nav <百分比>`:导航事件的百分比。
- `--pct-majornav <百分比>`:主要导航事件的百分比。
- `--pct-syskeys <百分比>`:系统按键事件的百分比。
- `--pct-appswitch <百分比>`:应用程序切换事件的百分比。
- `--pct-anyevent <百分比>`:任意事件的百分比。
- `--pct-pinchzoom <百分比>`:缩放事件的百分比。
2.时间相关的参数:-`-s<种子值>`:随机数生成器的种子值。
- `--throttle <延迟毫秒>`:事件之间的延迟时间。
-`-v<日志级别>`:日志的详细级别,可用值为0到5,默认为23.限制相关的参数:-`-c<事件数量>`:执行的总事件数量。
- `--dbg-no-events`:不执行任何事件,仅输出调试信息。
- `--dbg-clear-hist`:清除历史事件信息。
- `--pkg-blacklist-file <文件路径>`:指定一个包名黑名单文件,禁止访问黑名单中的应用程序。
4.安全相关的参数:- `--ignore-crashes`:忽略应用程序崩溃,继续执行测试。
- `--kill-process-after-error`:在发生错误后立即终止应用程序进程。
monkey基本命令参数详解示例

monkey基本命令参数详解⽰例Monkey基本命令参数参数名基本功能举例-p 参数-p⽤于约束限制,⽤此参数指定⼀个或多个包(Package,即App)。
指定包之后,Monkey将只允许系统启动指定的APP。
如果不指定包,Monkey将允许系统启动设备中的所有APP。
*指定⼀个包: adb shell monkey -p com.htc.Weather100说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机⽤户事件)。
*指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p com.htc.photo.widgets 100*不指定包:adb shell monkey 100说明:Monkey随机启动APP并发送100个随机事件。
*要查看设备中所有的包,在CMD窗⼝中执⾏以下命令:>adb shell#cd data/data#ls-v ⽤于指定反馈信息级别(信息级别就是⽇志的详细程度),总共分3个级别:level 0-2*⽇志级别 Level 0⽰例 adb shell monkey -p com.htc.Weather –v 100说明缺省值,仅提供启动提⽰、测试完成和最终结果等少量信息*⽇志级别 Level 1⽰例 adb shell monkey -p com.htc.Weather –v -v 100说明提供较为详细的⽇志,包括每个发送到Activity的事件信息*⽇志级别 Level 2⽰例 adb shell monkey -p com.htc.Weather –v -v –v100说明最详细的⽇志,包括了测试中选中/未选中的Activity信息-s ⽤于指定伪随机数⽣成器的seed值,如果seed相同,则两次Monkey测试所产⽣的事件序列也相同的。
monkey工具的使用

monkey工具的使用首先,我们需要安装Android SDK,并将其路径添加到系统的环境变量中。
然后,打开终端或命令行窗口,可以使用以下命令来检查是否安装成功:```$ adb```如果成功显示adb的用法,则安装成功。
接下来,我们需要连接一台已经开启USB调试模式的Android设备,或者使用模拟器。
在终端或命令行窗口中,使用以下命令来检查设备是否连接成功:```$ adb devices```如果成功显示已连接的设备,则表示连接成功。
现在,我们已经准备好使用monkey工具进行测试了。
在终端或命令行窗口中,使用以下命令来运行monkey:```$ adb shell monkey [options] <event-count>```下面是一些常用的选项:- `-p <package-name>`:指定要测试的应用的包名。
- `-v <verbosity-level>`:设置打印信息的详细程度,值越大打印信息越详细。
- `--pct-touch <percentage>`:设置触摸事件的概率百分比。
- `--pct-motion <percentage>`:设置滑动事件的概率百分比。
- `--pct-trackball <percentage>`:设置轨迹球事件的概率百分比。
- `--pct-nav <percentage>`:设置导航事件的概率百分比。
- `--pct-majornav <percentage>`:设置主要导航事件的概率百分比。
- `--pct-syskeys <percentage>`:设置系统按键事件的概率百分比。
- `-s <seed>`:设置随机数种子,用于重复相同的测试序列。
下面是一个示例命令:``````需要注意的是,monkey工具是通过随机生成各种事件来模拟用户操作的,因此可能会产生一些不可预测的结果。
monkey的使用方法和常见命令

monkey的使⽤⽅法和常见命令Monkey是直接运⾏在adb shell中的命令⼀、环境安装1. ⾸先把Android-sdk拷贝到电脑的⼀个路径下(SDK⽐较⼤,10.3G, ⼤家可以拿移动硬盘来我这⾥拷就⾏)2. 然后配置android的adb环境变量,⽅法如下(我在⽹上搜的配置⽅法,细化了⼀下,⽐较简单,照着操作就⾏):第⼀步,打开环境变量配置窗⼝。
右击计算机,属性-⾼级系统设置-环境变量。
第⼆步,添加android系统环境变量。
在系统变量下点击新建按钮,输⼊环境变量名android(⾃⼰的习惯命名),将android开发⼯具的路径导⼊打开Android-sdk->platform-tools,复制这个路径,然后粘贴到变量值中,接着同样打开tools,复制路径,粘贴到变量值中,注意,这两个路径之间⽤英⽂分隔符分开第三步,选择系统变量中Path,点击编辑按钮,把刚才添加的变量值复制粘贴到path后⾯,⽤英⽂分隔符和前⾯的内容分开即可,接着输⼊英⽂分隔符,再把变量名添加到后⾯,注意要前后加%,后⾯还得加⼀个英⽂分号第四步,测试环境变量。
⾸先打开运⾏命令,运⾏在开始菜单中就有1. 最后⼀步,在运⾏中输⼊cmd,调⽤命令操作窗⼝。
进⼊后输⼊adb查看运⾏结果。
完成配置后,我们就可以直接使⽤了,接着就可以执⾏测试了,⽅法如下:1. ⼿机连接电脑,在cmd 下执⾏adb shell ,这样就可以访问⼿机了,如果⼿机没有被识别,是因为没有驱动,需要安装驱动,如何安装驱动?在⽹上下载91助⼿电脑版,安装好后连接⼿机,需要在设置->开发者选项中,打开USB调试.OK2.重新在cmd下执⾏adb shell,这个时候会识别⼿机3.接着输⼊如下命令:执⾏命令:monkey -p com.baidu.BaiduMap --throttle 500 -v -v -v 1000000 >/sdcard/monkey.log &logcat -v time >/sdcard/logcat.log &(详细命令参数看Monkey介绍)这个命令是进⾏测试的常⽤命令, 如果还需要设置别的参数,可以根据Monley测试简介上的详细介绍去学习4. 同时可以在另外⼀个cmd窗⼝下执⾏ adb logcat -v time >>file (这样会把执⾏的⽇志打印到指定的⽂件中),如果不想存在C盘,可以存在其他的路径下:⽐如, adb logcat -v time >>d:\file即可5.测试完成后,进⼊⼿机/sdcard/monkey.log,把log导出来,如果直接打开log,不⽅⾯查看log,在⽹上下载⼀个EditPlus,⽤这个⼯具打开log⽂件,清楚明了,⽅便查找crash和ANR,采⽤Ctrl+F搜索的⽅式可以快速定位(在monkey中搜索提⽰的crash的事件号,在fie中搜索crash、anr,exception)下⾯是两个⽐较常见的问题:1.在测试没有完成如何结束此测试?有两中⽅法:(1)直接拔掉数据线断开,然后重新启动⼿机即可(2)在cmd中键⼊命令:ps(ps指所有进程)然后找到Monkey对应的进程号,⼀般⽐较好找,然后Kill掉这个进程,输⼊kill+进程号命令,这样就可以终⽌测试了2.Monkey Test执⾏过程中⼀般在下⾯两种情况下会停⽌测试:(1)如果应⽤程序崩溃或接收到任何失控异常,Monkey将停⽌并报错。
monkey之monkey命令详解

monkey之monkey命令详解四⼤类—— 常⽤选项、事件选项、约束选项、调试选项1、常⽤选项--help:打印帮助信息-v:指定打印信息的详细级别,⼀个-v增加⼀个级别,默认级别为 0 。
⽤于指定反馈信息级别(信息级别就是⽇志的详细程度),总共分3个级别。
⽇志级别 Level 0缺省值,仅提供启动提⽰、测试完成和最终结果等少量信息⽇志级别 Level 1提供较为详细的⽇志,包括每个发送到Activity的事件信息⽇志级别 Level 2最详细的⽇志,包括了测试中选中/未选中的Activity信息2、事件选项-s:指定产⽣随机事件种⼦值,相同的种⼦值产⽣相同的事件序列。
如: -s 200--throttle:每个事件结束后的间隔时间——降低系统的压⼒(如不指定,系统会尽快的发送事件序列)。
如:--throttle 100--pct-touch:指定触摸事件的百分⽐,如:--pct-touch 5% ,相关的还有以下option:--pct-motion <percent> (滑动事件)、 --pct-trackball <percent> (轨迹球事件)、 --pct-nav<percent> (导航事件 up/down/left/right)、 --pct-majornav<percent> (主要导航事件 back key 、 menu key)、 --pct-syskeys<percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、 --pct-appswitch<percent> (activity之间的切换)、 --pct-anyevent<percent>(任意事件)3、约束选项-p:指定有效的package(如不指定,则对系统中所有package有效),⼀个-p 对应⼀个有效package,如:-p com.ckt -p com.ckt.asura;参数-p⽤于约束限制,⽤此参数指定⼀个或多个包(Package,即App)。
Monkey测试-Monkey命令详解

Monkey测试-Monkey命令详解Monkeymonkey是⼀个⿊盒压⼒测试⼯具,采⽤随机算法,对被测应⽤随机发送伪随机的⽤户事件流,如点击,拖拽,滑动,输⼊等,来确定应⽤是否会发⽣异常,并且会产⽣⽇志来进⾏分析,但是测试数据测试事件都是随机的,有⼀定局限性。
适合作为压⼒或者稳定性测试⼯具来测试应⽤的崩溃率,稳定性。
但是可以通过⼆次开发来进⾏业务流程控制或⼀定程度上控制测试覆盖。
monkey 命令介绍adb shell -help 查看monkey命令介绍参数解析:1. -p 指定要进⾏monkey测试的包,如果不使⽤参数,则会随机选择⼀个应⽤进⾏测试2. -c 指定activity的category类别3. -v 指定⽇志级别 -v level1 -v -v level2 -v -v -v level34. -s 伪随机的事件seed值,可以通过-s参数复现问题,不指定就会随机⽣成5. --ignore-crashes 忽略异常崩溃6. --ignore-timeouts 忽略ANR7. --ignore-native-crashes 忽略native层代码的崩溃8. --ignore-security-exceptions 忽略⼀些许可错误,⽐如证书许可,⽹络许可9. --monitor-native-crashes 是否监视并报告native层发送的崩溃代码10. --kill-procress-after-error ⽤于在发送错误后杀死进程11. --hprof 设置后,在Monkey事件序列之前和之后⽴即⽣产分析报告,保存于data/mic⽬录,不过将会⽣成⼤量⼏兆⽂件,谨慎使⽤12. --throttle 设置每个事件结束后延迟多少时间再继续下⼀个事件,降低cpu压⼒;如果不设置,事件与事件之间将不会延迟,事件将会尽快⽣成;⼀般设置300ms,因为⼈最快300ms左右⼀个动作13. --pct-touch 设置触摸事件的百分⽐,即⼿指对屏幕进⾏点击抬起(down-up)的动作14. --pct-motion 设置移动事件百分⽐,这种事件类型是由屏幕上某处的⼀个down事件-⼀系列伪随机的移动事件-⼀个up事件,即点击屏幕,然后直线运动,最后抬起这种运动。
Monkey命令参数介绍

--pct-touch{+百分比}
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)
adb shell monkey -p com.htc.Weather --pct-touch 10 1000
--pct-motion{+百分比}
调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)
adb shell monkey -p com.htc.Weather --pct-anyevent 50 --pct-appswitch 50 1000
注意:各事件类型的百分比总数不能超过100%
--pct-appswitch{+百分比}
调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
adb shell monkey -p com.htc.Weather --pct-appswitch 70 1000
--pct-anyevent{+百分比}
调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等
*指定单个类型事件的百分比:
adb shell monkey -p com.htc.Weather --pct -anyevent 100 1000
*指定多个类型事件的百分比:
adb shell monkey -p com.htc.Weather --pct-majornav 50 1000
--pct-syskeys{+百分比}
调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)
monkey命令详解

Android上压力测试命令monkey详解一、Monkey 是什么◆Monkey是Android SDK中附带的一个命令行工具,可以运行在模拟器或者实际设备中◆向系统发送伪随机的用户事件流(按键输入、触摸屏输入、手势输入等)◆实现对正在开发的应用程序进行压力测试◆Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法二、Monkey程序介绍◆Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar◆Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey三、Monkey 测试的目的开发人员结合monkey 打印的日志和系统打印的日志,分析测试中出现的问题◆ANR问题:在日志中搜索“ANR”◆崩溃的问题:在日志中搜索“Exception”说明:ANR:Application Not Responding,在Android中,如果应该程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应对话框,用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”应用。
好的程序应该能流畅运行,不能出现ANR问题。
四、Monkey 测试的特点◆测试的对象仅为应用程序包,有一定的局限性(不能对源码进行测试)◆测试使用的所有事件流数据流都是随机产生的,不能进行自定义,不带任何人的主观性◆可对MonkeyTest的对象,事件数量,类型,频率等进行设置五、Monkey 命令详解1、标准的monkey 命令[adb shell] monkey [options] <eventcount>如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包如:adb shell monkey -p -v 500-p 指定测试程序包名-v 显示默认程度的信息500 事件数设定为500启动指定的应用程序,并向其发送500个伪随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)上面只是一个简单的例子,实际情况中通常会有很多的options 选项2、四大类——常用选项、事件选项、约束选项、调试选项✧常用选项--help:打印帮助信息,列出简单的用法adb shell monkey –help✧-v:指定打印信息的详细级别(即:日志的详细程度),一个-v增加一个级别*如:*adb shell monkey -p packagename -v -v – throttle 600 88-v -v :Level 1,提供较为详细的测试信息,如:逐个发送到Activity的事件--throttle 600:每个操作都间隔时间600ms88:执行的事件数Monkey报告等级总共3级,默认级别为0Level 0(缺省值),除启动提示、测试完成和最终结果之外,提供较少信息adb shellmonkey -p packagename -v 100Level 1,提供较为详细的测试信息,如:逐个发送到Activity的事件信息adb shellmonkey -p packagename -v -v 100Level 2,提供更加详细的设置信息,如:测试中被选中的或未被选中的Activityadb shellmonkey -p packagename -v -v -v 1002)事件选项✧-s<seed>:指定伪随机数生成器的seed值,如果用相同的seed值再次运行Monkey,则两次Monkey测试所产生的事件序列相同举例:Monkey测试1:adb shell monkey -p packagename -s 10 100Monkey测试2:adb shell monkey -p packagename -s 10 100两次测试的效果是相同的说明:模拟的操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列是伪随机的✧--throttle<milliseconds>:指定每个事件结束后的间隔时间,单位毫秒举例:adb shell monkey -p packagename -throttle 100说明:指定了固定的延迟时间后,可以减缓Monkey的执行速度,降低系统的压力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
monkey常用命令详解
monkey是一款常用的压力测试工具,用于模拟多个并发用户对系统进行压力测试。
本文将详细介绍monkey的常用命令及其功能。
1. monkey的基本命令
monkey的基本命令是最常用的命令之一,它用于启动monkey的工作。
可以通过以下命令来启动monkey:
```
adb shell monkey [options] <event-count>
```
其中,`event-count`表示要执行的事件数量,可以根据需要进行调整。
而`options`是一些可选参数,用于指定monkey的具体行为。
2. monkey的事件类型
在monkey中,有许多不同类型的事件可以执行。
以下是一些常见的事件类型及其对应的命令:
- 点击事件(Tap):用于模拟用户点击屏幕上的某个位置,可以使用`--pct-touch`参数指定触摸事件的百分比。
```
adb shell monkey --pct-touch <percentage> <event-count>
```
- 滑动事件(Swipe):用于模拟用户滑动屏幕的操作,可以使用`--
pct-motion`参数指定滑动事件的百分比。
```
adb shell monkey --pct-motion <percentage> <event-count>
```
- 按键事件(Key):用于模拟用户按键的操作,可以使用`--pct-keyevent`参数指定按键事件的百分比。
```
adb shell monkey --pct-keyevent <percentage> <event-count>
```
- 启动应用(Launch):用于模拟用户启动应用的操作,可以使用`--pct-appswitch`参数指定启动应用的百分比。
```
adb shell monkey --pct-appswitch <percentage> <event-count>
```
3. monkey的其他常用命令
除了基本命令和事件类型外,monkey还提供了一些其他常用的命令,用于进一步控制monkey的行为。
- 设置随机种子(Seed):可以使用`-s`参数来设置随机种子,用于生成随机事件序列。
不同的随机种子会生成不同的事件序列。
```
adb shell monkey -s <seed> <event-count>
```
- 设置包名过滤器(Package Filter):可以使用`-p`参数来设置要执行的应用的包名。
只有符合包名过滤器的应用才会被monkey执行。
```
adb shell monkey -p <package-name> <event-count>
```
- 设置日志级别(Verbose Level):可以使用`-v`参数来设置monkey的日志级别。
日志级别越高,生成的日志信息越详细。
```
adb shell monkey -v <event-count>
```
- 限制执行时间(Timeout):可以使用`--throttle`参数来设置事件之间的时间间隔,从而限制monkey的执行速度。
默认情况下,事件之间没有时间间隔。
```
adb shell monkey --throttle <delay> <event-count>
```
4. monkey的注意事项
在使用monkey进行压力测试时,需要注意以下几点:
- 小心使用随机种子:不同的随机种子会生成不同的事件序列,因此在比较不同测试结果时,需要使用相同的随机种子。
- 谨慎设置事件数量:设置过少的事件数量可能无法充分测试系统的性能,而设置过多的事件数量可能导致测试时间过长。
- 注意应用兼容性:由于monkey是通过模拟用户操作来测试应用,因此需要确保应用在用户操作时不会出现异常或崩溃。
- 结合其他工具进行分析:monkey生成的日志信息相对简单,如果需要更详细的测试结果和性能分析,可以结合其他工具如Mat等进行分析。
本文详细介绍了monkey的常用命令及其功能。
通过合理使用这些命令,可以对系统进行全面的压力测试,发现潜在的性能问题,并进行相应的优化。
希望本文对读者理解和应用monkey有所帮助。