初涉Monkey(一)

●  [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]

  ■  -p 允许的包名列表(可以一个或者多个)指定后mokey将只允许启动指定包名的包

●  [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]

  ■  如果你指定一个或多个类别,Monkey将只允许系统启动这些指定类别中列出的Activity。如果你不指定任何类别,Monkey将选择谢列类别中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多个类别使用多个-c,每个-c指定一个类别。

●  [--ignore-crashes]

  ■  应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

●  [--ignore-timeouts]

  ■  应用程序发生任何超时错误(例如:ANR)时,Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

●  [--ignore-security-exceptions]

  ■  当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

●  [--monitor-native-crashes] [--ignore-native-crashes]

●  [--kill-process-after-error]

  ■  当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态。

●  [--hprof]

  ■  设置此选项,将在Monkey生成事件序列前后生成profilling报告。在data/misc路径下生成大文件(~5Mb),所以要小心使用。

●  [--pct-touch PERCENT]

  ■  调整触摸时间的百分比(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作)

●  [--pct-motion PERCENT]

  ■  调整motion事件百分比(motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成)

●  [--pct-trackball PERCENT]

  ■  调整滚动球事件百分比。(滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件)

●  [--pct-syskeys PERCENT]

  ■  调整系统事件百分比。(这些按键通常由系统保留使用,如Home、Back、Start Call、End Call、音量调节)

●  [--pct-nav PERCENT]

  ■  调整基本的导航事件百分比。(导航事件由方向输入设备的上下左右按键所触发的事件组成)

●  [--pct-majornav PERCENT]

  ■  调整主要导航事件的百分比。(这些导航事件通常会导致UI界面中的动作事件,如5-way键盘的中间键,回退按键、菜单按键)

●  [--pct-appswitch PERCENT]

  ■  调整Activity启动的百分比。(在随机的时间间隔中,Monkey将执行一个startActivity()调用,作为最大程度覆盖被测包中全部Activity的一种方法)

●  [--pct-flip PERCENT]

●  [--pct-anyevent PERCENT]

  ■  调整其他事件的百分比。(这包含所有其他事件,如按键、其他在设备上不常用的按钮等)

●  [--pct-pinchzoom PERCENT]

●  [--pct-permission PERCENT]

●  [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]

●  [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]

●  [--wait-dbg] [--dbg-no-events]

●  [--setup scriptfile]

●  [-f scriptfile [-f scriptfile] ...]

●  [--port port]
●  [-s SEED] [-v [-v] ...]
  ■  -s 用于指定伪随机数生成器的seed值,如果seed值相同,则两次Monkey测试所产生的时间序列也相同
  ■  -v 指定反馈信息界别 -v -v -v最详细

●  [--throttle MILLISEC]
  ■  在两个事件中间插入固定的时间,单位(毫秒)
●  [--randomize-throttle]
●  [--profile-wait MILLISEC]
●  [--device-sleep-time MILLISEC]
●  [--randomize-script]
●  [--script-log]
●  [--bugreport]
●  [--periodic-bugreport]
●  [--permission-target-system]
●  COUNT
  ■  循环次数

 

 


adb shell pm list packages -a 查看系统安装包
adb shell pm list packages -3 查看第三方安装包
[--ignore-crashes] 忽略崩溃
[--ignore-timeout] 忽略超时 (体现anr
如果使用该参数,则执行中发生了崩溃或者anr的问题,会结束app.重新执行操作,继续之前的事件数,知道事件数结束,而且会在日志中记录该问题
[--ignore-security-exceptions] 安全证书相关方面

[-s SEED] 序列值,种子值 如果两次monkey命令执行一样的seed值,那么标志操作的流程是一样的,但是操作的界面或者对象是否就不能保证
[-v[-v]...] 日志级别程度 -v -v -v最详细的日志体现

[--throttle MILLISEC]延迟时间 单位:毫秒
工作中的事件数 35万次 延迟时间

结果分析:
1.//Monkey finished 表示monkey测试成功
2.其他均为失败 需要提交bug
① crash 崩溃 logcat日志
② anr 无响应 adb shell /data/anr/traces.txt
③ Monkey测试没有完成,异常中断
④ 关机
⑤ 重启

bug提交:
标题:[Monkey][CRASH/anr/重启/关机]app在执行monkey测试时发生重启
复现步骤:
1.准备
2.命令
3.查看结果
--开发是不会去看,不回按照步骤去复现,对后来人的验证或者自己往后的跟踪都是有好处
预期结果:
执行monkey无异常
实际结果:
执行monkey测试中发生crash
日志信息(logcat日志)

fatal /exception,reboot,OOM,ANR
分析具体步骤:需要一定的代码分析能力

posted @ 2021-08-09 15:02  ShineSpring  阅读(30)  评论(0)    收藏  举报