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依然继续执行剩余的操作

     

     

     

  • 相关阅读:
    1093 Count PAT's(25 分)
    1089 Insert or Merge(25 分)
    1088 Rational Arithmetic(20 分)
    1081 Rational Sum(20 分)
    1069 The Black Hole of Numbers(20 分)
    1059 Prime Factors(25 分)
    1050 String Subtraction (20)
    根据生日计算员工年龄
    动态获取当前日期和时间
    对计数结果进行4舍5入
  • 原文地址:https://www.cnblogs.com/JcHome/p/8280116.html
Copyright © 2011-2022 走看看