Monkey工具学习总结-使用篇

上一篇 / 下一篇  2017-07-24 16:55:04 / 个人分类:自动测试工具

1、Monkey定义:
  Monkey是google提供的一个命令行工具,可运行在模拟器或实际设备中,它向系统发送伪随机的用户事件,模拟用户的按键输入、触屏输入、手势输入等。从而对正在运行的应用程序进行压力测试,目的是看设备多长时间会出现异常,并观察系统的稳定性和容错性能。
2、Monkey环境搭建
  Monkey是由adb命令来启动的,古只需要配置好adb环境即可。
  (1)、安装Andriod SDK和JDK
  (2)、将SDK下面的tools和platform-tools配置到环境变量中path中;
   (3)、cmd命令行输入adb,如果可以显示help信息,则配置成功。
3、Monkey命令参数
  monkey [option] <count>---option可选,count必选
  
  option参数分类:
  (1)、基本配置参数,包括 --help,-v-v-v(二级)
  (2)、事件类型和频率参数
         -s<seed> 例如:adb shell monkey -s1111-v10
         --throttle <毫秒数> 事件之间插入固定延迟
         --pct-touch<百分比> 调整触摸事件的百分比
         --pct-motion<百分比> 调整动作事件的百分比
         --pct-pinchzoom<百分比>调整二指缩放事件的百分比
         --pct-trackball<百分比>调整轨迹事件的百分比
         --pct-rotation<百分比>调整屏幕旋转事件的百分比
         --pct-nav<百分比>调整基本导航事件的百分比
         --pct-majornav<百分比>调整主要导航事件<百分比>
         --pct-syskeys<百分比>调整系统按键事件的百分比
         --pct-appswitch<百分比>调整启动Activity的百分比
         --pct-flip<百分比>调整键盘事件的百分比
         --pct-anyevent<百分比>调整其他类型事件的百分比
  (3)、约束限制类参数
        -p<包名>
        -c<类别名>
  (4)、调试类参数
        --dbg-no-events
        --hprof  生成内存快照
        --ignore-crashes 崩溃发送事件
        --ignore-timeouts 忽略超时
        --ignore-security-exceptions 忽略安全异常
        --kill-process-after-error
        --monitor-native-crashes
        --wait-dbg
  (5)、官方隐藏类参数
        --pkg-blacklist-file<黑名单文件>
        --pkg-whitelist-file<白名单文件>
        -f<脚本文件>
4、Monkey事件
  1、触摸事件
     :Sending Touch (Action_DOWN)
     :Sending Touch (Action_UP)
  2、手势事件
     :sending Touch (Action_DOWN)
     :Sending Touch (Action_MOVE)
     :Sending Touch (Action_UP)
  3、二指缩放事件
  4、轨迹事件
  5、屏幕旋转事件
  6、基本导航事件
  7、主要导航事件
  8、系统按键事件
  9、启动Activity事件
  10、键盘事件
  11、其他类型事件
4、Monkey启动
   adb shell monkey [opition] <count>
5、Monkey停止
   adb shell ps|grep monkey
   adb shell kill pid
6、Monkey测试方法
   (1)、常规的稳定性测试
    (2)、自定义的脚本稳定性测试
     (3)、结合辅助命令、获取更多的信息
7、Monkey日志分析
  日志分析非常重要,可以定位问题和解决问题。
  首先需要知道如何保存日志:
  (1)、Monkey日志保存的3个方法:
       adb shell monkey [option] <count> >e:\monkeyLog.txt
       将日志保存到monkeyLog.txt文件中
  (2)、adb shell monkey [option] <count> /mnt/sdcard/monkeyLog.txt
       将日志保存到手机sdcard中
  (3)、Monkey [option] <count> 1>/sdcard/monkeyLog.txt 2>/sdcrad/errorLog.txt
        分别保存日志和错误日志,错误日志记录崩溃或应用程序无响应错误日志。
    其次,如何解析日志?,需要先明确日志的构成:测试命令信息、伪随机事件流信息、异常信息、Monkey执行结果信息。
   (1)、测试命令信息
        例如 :Monkey: seed=1501203071005 count=10,
             // Event percentages:
             //   11: 13.0%
    (2)、伪随机事件,主要包括上面提到的11大事件
        例如::Switch:
              :Sending Touch (ACTION_DOWN): 0:(954.0,1300.0)

              :Sending Touch (ACTION_UP): 0:(962.5436,1295.4299)

              :Sending Trackball (ACTION_MOVE): 0:(-2.0,2.0)
     (3)、异常信息
            Crash:....
     (4)、执行结果信息,如果有失败则显示失败原因。
      Events injected: 10

      :Sending rotation degree=0, persist=false

       :Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0

        ## Network stats: elapsed time=8211ms (0ms mobile, 0ms wifi, 8211ms not connected)

       // Monkey finished
    再者,可以把自己关心的日志信息,用bat脚本提取出来并收集到一个日志中。
   






 

 

TAG:

 

评分:0

我来说两句

Open Toolbar