zoukankan      html  css  js  c++  java
  • monkey工具介绍及用法

    monkey是android 系统自带的一个命令行工具,可以向被测应用程序发送伪随机的用户事件流(如按键、触屏、滑动等操作),实现对应用程序进行测试的目的。

    monkey测试也叫猴子测试,是指测试时可以像好奇的猴子一样,不停的对应用程序进行随机操作,以便验证应用程序的稳定性和健壮性。因此,monkey测试是软件稳定性,健壮性的测试工具

    下面是monkey提供的一些参数:

    参数:

    事件相关参数表:

    -s <seed>    这个参数是伪随机数生成器的种子值,如果用相同的随机种子值再次运行相同的monkey命令时,前、后两次执行的操作事件序列相同,也就是相同的操作。

    --throttle <milliseconds>    这个参数是设定在两个事件之间插入一个固定延时,它可以减缓Monkey的执行速度。如果您不指定选项,Monkey将不会被延迟,事件将尽可能快地生产和发送消息。

    --pct-touch <percent>    这个参数是设定触屏事件生产的百分比,触屏事件是一个有手指按下、抬起事件的操作。

    --pct-motion <percent>    这个参数是设定滑动事件生成的百分比,滑动事件是一个先在某一个位置手指按下,滑动一段距离后再抬起手势的操作。

    --pct-trackball <percent>    这个参数是设定轨迹球事件生成的百分比,轨迹球事件是包含一系列随机移动和单击事件的操作。

    --pct-nav <percent>      这个参数是设置基本的导航事件的百分比,基本导航事件的模拟方向性设置输入向上、向下、向左、向右的操作。

    --pct-majornav <percent>    这个参数是设定主要导航事件的百分比,主要导航事件通常是导致UI产生回馈事件,如:单击BACK键,单击MENU键。

    --pct-syskeys <percent>     这个参数是设定系统按键事件的百分比,系统按键是指这些按键通常被保留,由系统使用,如HOME,BACK,拨号,挂断及音量控制键。

    --pct-appswitch <percent>    这个参数是设定启动活动事件的百分比,在随机的一定间隔后,Monkey就会执行一个startActivity()函数尽可能多的覆盖包中全部活动。

    --pct-anyevent <percent>    这个参数是设定其他类型事件的百分比,如普通的按键消息,不常用的设备按钮事件等。

    约束条件:

    -p <运行的包名列表>      这个参数是设定一个或几个包名,monkey将只允许系统启动这些包里的活动,如果您的应用程序还需要访问其他包里的活动,如选择一个联系人,那也需要在此同时指定联系人所在应用的包名。

    要指定多个包时,需要使用多个“-p”选项,每个“-p”选项只能用于一个包。

    -c <意图的分类>        这个参数是指定意图的分类,这样monkey只会启动可以处理这些种类的意图的活动。如果没有设置这个选项,monkey则只会启动带有Intent.CATGORY_LAUNCHER 和Intent.CATEGORY_MONKEY。

    与“-p”参数类似,要指定多个类别,需要使用多个“-c”选项,每个“-c”选项只能用于一个类别。

    调试选项:

    --dbg-no-events        若指定了该参数,monkey将会执行初始启动,进入到一个测试Activity,不会再进一步生产事件。为了得到最佳结果,把它与“-v”,“-p”和“--throttle”等参数一起使用,并让monkey运行30秒或更长时间,

    从而可以让我们观测到应用程序所调用的包与包之间的切换过程。

    --hprof            若指定了该参数,monkey会在发送事件序列的前、后,生成性能分析报告。通常会在“data/misc”目录下生成一个5MB左右大小文件。

    --ignore-crashes        通常情况下,monkey会在待测应用程序崩溃或发生任何异常后停止运行。若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到指定的事件消息全部完成为止。

    --ignore-timeouts        通常情况下,当应用程序发生任何超时错误(如“Application Not Responding” 对话框)时,monkey将停止运行,若指定了该参数,则monkey将会在产生错误消息后,继续向系统发送事件,直到指定的事件

    消息全部完成为止。

    --igone-security-exceptions    通常情况下,monkey会在被测应用程序发生权限方面的错误时停止运行。若指定了该参数,则monkey将继续向系统发送事件,直到指定的事件消息全部完成为止。

    --kill-process-after-error      通常情况下,当monkey由于一个错误而停止时,出错的应用程序就继续处于运行状态。当设置了此选项时,它将会通知系统停止发生错误的进程(注意:当monkey正常执行完毕后,它不会关闭所启动的应用,设备依然保留

    其最后接收到的消息状态,所以建议大家在执行命令以后为保持应用的初始状态,需手动或者脚本程序已经打开的应用进行关闭)。

    --monitor-native-crashes      监视由android C/C++ 代码部分引起的崩溃,若同时指定了 --kill-process-after-error 参数,则整个系统将会关机。

    --wait-dbg            启动monkey后,先中断其运行,等待调式器和它相连接。

     

    示例讲解:

    -s  指定随机种子大小

    命令:adb shell monkey -p com.xxx.xxx -v 100

    -s的参数值为100,表明monkey对应用程序com.xxx.xxx一共发送100个随机操作事件。第一次执行和第二次执行该命令时,操作的事件顺序是一样的,因为-s的参数都是100,产生的随机事件序列的顺序也是一样。

     

    -p  指定运行的应用程序

    命令:adb shell monkey -p com.xxx.xxx -p com.android.calendar 200

    有两个-p参数,说明monkey同时启动两个应用程序,并对这两个应用程序同时进行200个随机操作事件。

     

    -throttle  指定各个随机事件之间的延时时间,单位:毫秒

    命令:adb shell monkey -p com.xxx.xxx --throttle 3000 100

    --throttle 参数值为3000毫秒,也就是每个事件操作的时间间隔为3秒,3秒后进入下一个事件操作。

     

    --pct-touch <percent>  用于设定触屏事件生成的百分比

    命令:adb shell monkey --pct-touch 50 -p com.xxx.xxx --throttle 3000 100

    --pct-touch 50 表示设定触屏事件的占比为50%。

     

    --pct-motion <percent>  用于设定滑动事件生成的百分比

    命令:adb shell monkey --pct-motion 50 -p com.xxx.xxx --throttle 3000 100

    --pct-motion 50 表示设定滑动事件的占比为50%

     

    --pct-trackball <percent>  用于设定轨迹球事件的百分比

    命令:adb shell monkey --pct-trackball 50 -p com.xxx.xxx --throttle 3000 100

    -pct-trackball 50 表示设定轨迹球事件的占比是50%

     

    --pct-nav <percent>  用于设定设备向上、向下、向左、向右事件的百分比

    命令:adb shell monkey --pct-nav 60 -p com.xxx.xxx  100

    --pct-nav 50 表示设置控制设备操作向上、向下、向左、向右的比例占比是60%。

     

    --pct-majornav <percent>  用于控制设备主要导航事件,如单击BACK键,单击MENU键的百分比

    命令:adb shell monkey --pct-majonav 70 -p com.xxx.xxx 200

    --pct-majornav 70 表示设置控制设备主要导航事件,打击BACK键,单击MENU键的占比是70%。

     

    --pct-syskeys <percent>  用于控制设备系统按键事件,如home、back、拨号、挂断及音量事件生成的百分比

    命令:adb shell monkey --pct-syskeys 50 -p com.xxx.xxx 100

    -pct-syskeys 50 表示设置控制系统按键事件的占比为50%。

     

     --pct-appswitch <percent>  用于设置启动活动事件的百分比

    命令:adb shell monkey --pct-appswitch 60 -p com.xxx.xxx 500

    表示设置主要覆盖包中60%的活动

     

    --pct-anyevent <percent>  用于设置其他类型事件的百分比

    命令:adb shell monkey --pct-anyevent 50 -p com.xxx.xxx 500

    表示其中普通的按键消息、不常用的设备按钮事件等占50%

     

    --hprof  用于记录monkey在执行前、后的性能数据

    命令:adb shell monkey --hprof -p com.xxx.xxx 5000

    表示在monkey发送事件序列的前、后,生成性能分析报告。通常会“/data/misc”目录下生成一个5MB大小左右的文件。

     

    --ignore-crashes  用于设置monkey运行时,待测程序崩溃或发生异常后,是否需要继续执行

    命令:adb shell monkey --ignore-crashes -p com.xxx.xxx 5000

    表示在monkey执行事件操作过程中,如果发生了程序崩溃或异常,依然继续执行剩余的操作

     

    --ignore-timeout  用于设置monkey运行时,待测程序出现超时,是否需要继续执行

    命令:adb shell monkey --ignore-timeout -p com.xxx.xxx 5000

    表示在monkey执行事件操作过程中,如果出现超时(Application Not Responding),monkey依然执行剩余的操作

     

    --ignore-security-exceptions  用于设置monkey运行时,出现一些访问权限问题,是否需要继续执行

    命令:adb shell monkey --ignore-security-exceptions -p com.xxx.xxx 5000

    表示在monkey运行时,出现证书许可证错误或网络许可错误等情况,monkey依然继续执行剩余的操作

     

     

     

  • 相关阅读:
    Rabbit官方文档翻译之Publish Subscribe(三)
    Maven项目导入本地Jar包
    位运算实现整数的加减乘数运算
    SpringMVC通过工具类获取Request域
    终止线程的2种方法。标记法和中断
    Spring 下默认事务机制中@Transactional 无效的原因
    java泛型 泛型的内部原理:类型擦除以及类型擦除带来的问题
    java.lang.Object.clone()分析
    我的Node.js学习历程
    setTimeout的妙用2——防止循环超时
  • 原文地址:https://www.cnblogs.com/JcHome/p/8280116.html
Copyright © 2011-2022 走看看