monkey的简单使用

一、环境搭建

下载jdk和sdk,配置环境和环境变量。

二、monkey的使用

1、windows+r 输入cmd进入dos命令行;

2、输入 adb shell pm list packages -3 查看手机上所有的第三方安装包;

3、简单的执行一个命令:adb shell monkey --throttle 1500 --pct-motion 10 --pct-majornav 10 -p 包名(com.baidu.xxx) -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000 >F:\monkey_log\xx_monkey_log.txt

上面命令的意思是像这个app发送10000个随机事件,每次事件间隔1.5秒,其中滑动事件占百分之十,主要导航事件占百分之十,产生时间的序列的种子值为500,监视的级别为3,输出的log在F:\monkey_log\xx_monkey_log.txt

三、分析

1、ANR问题(程序无响应):在日志中搜索“ANR"(application no response)

2、闪退问题:在日志中搜索"crash"

3、异常:搜索"exception"

4、强制退出:搜索"force closed"

四、手动进行monkey进程的停止

1、adb shell      (进入shell命令)

2、ps|grep monkey     (找到monkey的进程编号)

3、kill xxxx     (杀掉进程)

五、小结

1、-p参数:表示指定测试的程序(空格后面跟安装包名字,拿刚才的第三方安装包一个个试)

      -v参数:表示查看monkey执行过程的信息(日志级别)(-v 越多越详细,最多三个)

      Event percentages(事件百分比):

      0:触摸事件百分比,参数--pct-touch

      1:滑动事件百分比,参数--pct-motion

      2:缩放事件百分比,参数--pct-pinchzoom

      3:轨迹球事件百分比,参数--pct-trackball

      4:屏幕旋转事件百分比,参数--pct-rotation

      5:暂时不知道这个是什么

      6:基本导航事件百分比,参数--pct-nav

      7:主要导航事件百分比,参数--pct-majornav

      8:系统事件百分比,参数--pct-syskeys

      9:Activity启动事件百分比,参数--pct-appswitch

      10:键盘翻转事件百分比,参数--pct-flip

      11:其他事件百分比,参数--pct-anyevent

2、尽管monkey产生是伪随机事件流,但是我们希望我们的操作有一定的规律性,即按键、触屏等各类事件操作有所偏重。

      eg:(1).对文本框操作,需要更多的按键操作。

              (2).玩游戏,需要更多的点击和滑动操作。

3、--throttle  设定两个事件之间一个固定延迟,可以减缓monkey的执行速度。如果不指定,monkey将不会被延迟,事件将尽可      能快地生成和发送消息。单位:毫秒

      eg:      adb shell monkey  --throttle  3000  -p com.tencent.news  100    

      向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。

4、--pct-touch  (空格后加数字)设定触屏事件生成的百分比。触屏事件是一个有手指按下,擡起事件的手势。

      eg:      adb shell monkey   --throttle  3000   --pct-touch  50  -p  com.tencent.news  100 

      向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定触屏的事件占比为50%。

5、--pct-motion  设定滑动事件生成的百分比。滑动事件是一个先在某一个位置手指按下,滑动一段距离后再擡起手指的手势。

      eg:       adb shell monkey   --throttle  3000 --pct-motion  50  -p  com.tencent.news  100

      向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定滑动的事件占比为50%。

6、--pct-trackball  设定轨迹球事件生成的百分比。轨迹球事件是包含一系列随机移动和单击事件的事件

      eg:      adb shell monkey --throttle  3000 --pct-trackball  50  -p  com.tencent.news  100 

      向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定轨迹球的事件占比为50%。

7、--pct-nav  设定基本导航事件生成的百分比。基本导航事件是模拟方向性在设备上输入向上、向下、向左、向右的事件。

      eg:      adb shell monkey --throttle  3000 --pct-nav  40  -p  com.tencent.news  100 

      向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定基本导航事件的占比为40%。

8、--pct-majornav  设定主要导航事件生成的百分比。主要导航事件通常会导致UI产生回馈信息,如单击Back键、Home键、Menu键等、

      eg:     adb shell monkey  --throttle  3000   --pct-majornav  40  -p  com.tencent.news  100 

      向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定主要导航事件的占比为40%。

9、--hprof

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

10、--ignore-crashes

      通常情况下,monkey会在测试应用程序崩溃或者发生异常后停止运行,若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到指定事件全部运行完毕。

11、--ignore-timeouts

      通常情况下,当应用程序发生任何超时错误(application  not  responding)时,monkey将停止运行。若指定了该参数,则monkey将会在产生错误信息后,继续向系统发送事件,直到指定事件全部运行完毕

 

12、--ignore-security-exceptions    通常情况下,指定应用程序发生许可错误时(如证书许可,网络许可等),monkey将停止运行。若指定了该参数,即使应用程序发生许可错误,monkey会继续向系统发送事件,直到指定事件全部运行完毕。

      eg:      adb shell monkey  --throttle  3000 --pct-trackball  50  -p  com.tencent.news  --ignore-security-exceptions  100

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章