monkey-压力测试、参数详解

一、简介
monkey程序通过模拟用户的随机操作来对程序进行压力测试。
monkey程序由java写成,android系统自带,在android文件系统中的存放路径是:/system/framework/monkey.jar 。
monkey.jar使用名为monkey的shell脚本启动,该shell脚本在android文件系统中的存放路径是:/system/bin/monkey。

二、命令
1、获取monkey帮助
adb shell monkey –help

2、执行压力测试
adb shell monkey [参数] aa>/data/local/tmp/log.txt 2>&1 &

1)aa:随机事件计数,即让monkey程序模拟用户aa次随机事件。
2)>/data/local/tmp/log.txt:测试日志的保存路径。
3)2>&1:固定的写法,表示中间忽略的日志一并输入到指定的文件中。
4)&:表示monkey测试开始后即可拔掉数据线,不影响monkey测试。

eg:
adb shell monkey -p com.taobao -v-v-v -s 10 --throttle 200 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error --monitor-native-crashes --pct-touch 10 --pct-motion 10 --pct-trackball 10 --pct-nav 10 --pct-majornav 10 --pct-syskeys 10 --pct-appswitch 30 --pct-anyevent 10 1000>/data/local/tmp/log.txt 2>&1 &

三、命令参数
monkey命令参数,包括基本选项、约束选项、事件选项、调试选项。

参数说明
基本选项
-v
-v-v
-v-v-v
日志级别
1)level0,缺省值,提供少量的日志,包括启动提示、测试完成和最终结果等信息。
2)level1,提供较详细的日志,包括每个发送到Activity的事件信息。
3)level2,提供最详细的日志,包括测试中选中/未选中的Activity信息。
-s aa指定伪随机数生成器的seed值,aa为seed的值。操作序列虽然是随机生成的,但只要指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的。
–throttle aa指定用户操作(即事件)间的时延,单位是毫秒,aa为throttle的值。即每个事件结束后的间隔时间,是为了降低系统的压力。若不指定,系统会尽快的发送事件序列。
约束选项
-p package1 -p package2指定一个或多个包,package1、package2为包名。指定多个包时,需要使用多个-p选项,每个-p选项只能用于一个包。若指定包,只允许系统启动指定的APP。若不指定包,monkey允许系统启动设备中的所有APP。
-c指定一个或多个特定的Activity。要指定多个类别,需要使用多个-c选项,每个-c选项只能用于一个类别。若指定类别,只允许系统启动被这些类别中的某个类别列出的Activity。若不指定类别,Monkey将选择下列类别中列出的Activity: Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。
事件选项–pct-bb aa ,指定事件类型、该事件类型占总事件数目的百分比。注:单位已包含%,所以值的范围为0~100。
–pct-touch aa触摸事件。在屏幕某处按下并抬起的操作,类似点击。由一组Touch(ACTION_DOWN)和Touch(ACTION_UP)事件组成。
–pct-motion aa滑动事件。在屏幕某处的按下、随机移动、抬起的操作,类似直线滑动操作。由一个ACTION_DOWN事件、一系列ACTION_MOVE事件和一个ACTION_UP事件组成。
–pct-trackball aa轨迹事件。一个或多个随机的移动组成的,包含曲线滑动操作。由一系列的Trackball(ACTION_MOVE)事件组成一个或几个随机的移动组成。
–pct-nav aa“基本”导航事件。点击方向输入设备的上、下、左、右按键的操作。由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成。来自方向输入设备的up/down/left/right组成。注:这种事件用的比较少。
–pct-majornav aa“主要”导航事件。按键通常会导致UI界面中的动作,如键盘的中间键、回退按键、菜单按键。由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成。
–pct-syskeys aa“系统”按键事件。系统保留使用的按键的操作,如点击Home键、返回键、音量调节键等。 由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成 。
–pct-appswitch aa启动Activity。启动一个Activity的操作,即执行一个startActivity()调用。由一个Switch操作组成。注:这是最大程度覆盖包中全部Activity的一种方法。
–pct-pinchzoom二指缩放事件。在屏幕上的两处同时按下,并同时移动,最后同时抬起的操作,即智能机上的放大缩小手势操作。 起始是一个ACTION_DOWN事件和一个ACTION_POINTER_DOWN事件,即模拟两个手指同时点下;中间是一系列的ACTION_MOVE事件,即两个手指同时在屏幕上直线滑动;结束是由一个ACTION_POINTER_UP事件和一个ACTION_UP事件组成的,即两个手指同时放开。
–pct-flip键盘事件。键盘相关的操作。比如点击输入框、键盘弹起、点击输入框以外区域、键盘收回等。
–pct-rotation屏幕旋转事件。模拟Android手机的横屏和竖屏切换。由一个rotation事件组成,其中degree表示的是旋转方向,顺时针旋转,0表示旋转90度的方向,1表示旋转180度的方向,2表示旋转270度的方向,3表示旋转360度的方向
–pct-anyevent aa其它类型事件。除前面10种事件外其他所有的事件,如按键、其他不常用的设备上的按钮等。由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的。
调试选项为了保证测试数量的完整进行,一般不会在发生错误时立刻退出压力测试。所以一般需要忽略崩溃、超时、安全异常等。
–ignore-crashes忽略崩溃,即当应用程序崩溃时(Force& Close错误),monkey不停止运行。若不使用此参数,monkey将会停止运行。
–ignore-timeouts忽略超时,即当应用程序发生ANR(Application No Responding)错误时,monkey不停止运行。若不使用此参数,monkey将会停止运行。
–ignore-security-exceptions忽略安全异常,即当应用程序发生许可错误时(如证书许可,网络许可等),monkey不停止运行。若不使用此参数,monkey将会停止运行。
–kill-process-after-error当应用程序发生错误时,应用程序停止运行并保持在当前状态。注:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程。
–monitor-native-crashes监视由Android C/C++代码部分(cpu计算部分)引起的崩溃,并报告应用程序发生崩溃的本地代码。此时如果设置了“–kill-process-after-error”,系统将停止运行。
–dbg-no-eventsMonkey将执行初始启动,进入到一个测试activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约 束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。
–wait-dbg启动monkey后,先中断其运行,直到连接了调试器后再执行monkey测试。
–hprof将在monkey事件序列之前和之后立即生成profiling报告(性能报告,即内存的快照文件)。在设备的/data/misc目录下生成一个5M左右的文件。一般建议指定该项。

本文来自:https://blog.csdn.net/yisumi
end…

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值