" + {日志保存路径}小demo: 案例场景:命令参数:monkey的命令参数分为:  基础参数:-v 、-s 、-p 、--throttle等  调试选项:--ignore-crashes等  事件类型:--pct-touch等1、最简单的monkey命令(monkey 100)表示:在设备上,针对整个系统发送100个伪随机_cdsn">
当前位置:   article > 正文

【monkey】monkey测试入门_cdsn true100 monkey

cdsn true100 monkey

目录

一、安装

二、真机或者模拟器

三、基本命令

(一)基础参数

(二)调试选项

四、 停止命令

五、测试结果分析

(一) 初步分析方法

(二)一般的测试结果分析:


一、安装

安装jdk8和android-sdk环境,网上自行搜索

验证安装结果

二、真机或者模拟器

注意打开开发者模式,以及usb调式

本文使用模拟器

三、基本命令

adb shell monkey + 行为参数 + ">" + {日志保存路径}

  1. # 几个常用命令
  2. 1、adb shell monkey 100 monkey命令执行100次随机随机事件
  3. 2、adb shell monkey -跑p akp包名 1000 指定包名进行测试
  4. 3、adb shell monkey --ignore-crashes 100 忽略崩溃
  5. 4、adb shell monkey --ignore-timeouts 100 忽略超时
  6. 5、adb shell monkey -v 100 指定日志详细程度级别
  7. 6、adb shell monkey -s seed号 34432221000指定种子号
  8. 7、adb shell monkey --throttle 100 100 指定事件延迟100毫秒
  9. 8、adb shell monkey --pct-touch 10 1000 指定触摸事件百分比10%
  10. 9、adb shell monkey --pkg-whitelist-file/data/tmp/whitelist.txt 1000 白名单测试

小demo:

  1. adb shell monkey -p com.xxx.myapp --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000 > d:\mylog.log
  2. # com.xxx.myapp appPackage名称 adb shell pm list packages (-f:所有应用的包名,-3:非系统安装的包名)

 案例场景:

需要控制monkey执行的时间,可以通过设置执行时长/事件发送延时,计算出需要执行的次数。

如:想要monkey运行24小时,每100毫秒发送一个事件。24*60*60*1000/100=864000(次)

  adb shell monkey -p *** -v -v -v --ignore-crashes --ignore-timeoutss --throttle 100 864000 >D:\monkey.log

  表示:此次monkey将会运行24小时

命令参数:

monkey的命令参数分为:

  基础参数:-v 、-s 、-p 、--throttle等

  调试选项:--ignore-crashes等

  事件类型:--pct-touch等

(一)基础参数

1、最简单的monkey命令(monkey 100)

表示:在设备上,针对整个系统发送100个伪随机事件。

2、-v参数

用于指定反馈信息级别(信息级别就是日志的详细程度)总共分为3级,默认为-v(对应:level0)

-v:只提供启动提示、测试完成提示和最终结果等少量信息。

-v -v:较为详细的日志,包括每个发送到activity的时间信息。

-v -v -v:最详细的日志,包括测试中选中/未选中的activity信息。

注意:在monkey测试完成时,最后一定会有一个:monkey finished标识。

3、-p参数

  在我们测试时,是针对具体的app进行测试的,所以在使用monkey测试时,我们需要提供具体的app包名给monkey,此时就需要用到参数-p。在-p后跟随app包名。

  在测试时,可以不指定包名,此时monkey会在测试设备上随机启动app进行操作;如果只需要测试一个app,使用一个-p即可;如果有多个app同时测试,可以直接使用-p 包名1 -p 包名2指定具体要测试的app。

4、-s参数

  种子值(seed),因为monkey是发送的是伪随机的事件流,但是如果两次seed值相同,那两次monkey测试所产生的事件序列也相同。(所以一般在测试时要记录seed值,以防出现无响应和crash,不容易验证。)

  注意:-s需要跟在包名后,次数前

5、--throttle参数

  设置执行操作的延迟时间(毫秒)--是指两个事件之间的间隔,如果没有指定此参数,会尽可能快的生成和发送事件。

(二)调试选项

1、--ignore-crashes

  用于指定当应用程序崩溃时,Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,monkey依然会发送事件,直到事件计数完成。

2、---ignore-timeouts

  用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

3、--ignore-security-exceptionss

  用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

4、--kill-process-after-error

  用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

5、--monitor-native-crashes

  用于指定是否监视并报告应用程序发生崩溃的本地代码

6、--hprof

  该选项设置后,将会在monkey事件序列前后立刻生成report,大小为大于5MB,存储在/data/misc

(三)事件类型

  monkey在发送伪随机事件时,是有不同的类型的。默认随机分配比例,也可以指定其百分比。如果不设置会是--pct-anyevent为100%,也就是纯随机事件;如果配置了其他参数,但是不够100%,余下的百分比部分也是--pct-anyevent事件。

具体事件类型分别为:

1:触摸事件--pct-touch

  调整touch触屏事件的百分比,触碰事件就是指在屏幕上的一个单独位置的一次点击/抬起的事件。

2:滑屏事件--pct-motion(手势事件)

  (手势事件是由一个在屏幕某处的按下事件、一系列的伪随机移动、一个抬起事件组成)即一个滑动操作,但是是直线的,不能拐弯)

3:轨迹球--pct-trackball

  (轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)

4:旋转(--pct-rotation)

  旋转屏幕

5:导航--pct-nav

  (导航事件包括上下左右,如方向输入设备的输入)老手机的上下左右键,智能机上没有)

6:主导航--pct-majornav

  调整主要导航事件的百分比(如中间键、取消、确定或菜单引发的图形接口的动作)

7:系统按键--pct-syskeys

  调整系统按键事件,如:home/back/startcall/endcall以及音量控制键等

8:app切换--pct-appswitch

  调整启动activity的百分比,在随机间隔中,执行一个startActivity()方法调用,作为一种最大化的覆盖安装包的所有的activity的方法

9:键盘翻转(--pct-flip)

10:随机--pct-anyevent

  调整其他类型的事件的百分比,比如按键或其他不太常用到的一些事件的百分比

四、 停止命令

  1. 1)adb shell ps
  2. 查找出com.android.commands.monkey的进程PID
  3. 2)杀掉进程
  4. adb shell kill pid

五、测试结果分析

(一) 初步分析方法

Monkey测试出现错误后,一般的查错步骤为以下几步:
1、找到是monkey里面的哪个地方出错
2、查看Monkey里面出错前的一些事件动作,并手动执行该动作
3、若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样--复现


(二)一般的测试结果分析:


1、 ANR问题:在日志中搜索“ANR”
2、崩溃问题:在日志中搜索“Exception” Force Close

信息收集来源:

来源1   来源2

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号