Monkey

Monkey Script 是一组可以被monkey识别的命令集合,可以完成重复操作。

MoneyRunner提供了一系列的API,可以完成模拟事件及截图操作

获取包名命令: adb logcat | grep START

adb shell monkey -p com.wzh.ydbg -v --throttle 300 --pct-touch 30 --pct-motion 20 --pct-nav 20 --pct-majornav 15 --pct-appswitch 5 --pct-anyevent 5 --pct-trackball 0 --pct-syskeys 0 -p '%s' 1000 >e:ydbglog.txt

参数解读“

     --throttle <毫秒> 

指定用户操作(即事件)间的时延,单位是毫秒;如果不指定这个参数,monkey会尽可能快的生成和发送消息。

  --seed参数(可用于复现问题,)

指定随机生成数的seed值  例如:adb shell monkey -p 包名 -s seed值   

  --ignore-security-exception 

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

  --ignore-timeouts(超时事件)

作用:通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

  --ignore-crashes(崩溃事件)

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

  --pct-touch <percent>

作用:调整触摸事件的百分比.(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作)比如一个应用80%的操作都是触摸,那就可以将此参数的百分

比设置成相应较高的百分比。如触摸返回、触摸签到等

  --pct-motion<percent>

调整motion事件百分比。(motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成)也就是直线滑动事件如从左到有滑动解锁

  --pct-trackball <percent>

作用:调整滚动球事件百分比。(滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件)如不规则滑动解锁

--pct-nav<percent> 导航,现在手机基本没有导航了

---pct-syskeys<percent> 按键消息比例,主页、后退、音量增减

--pct-anyevent 其他不常用的按键比例的设置,不常用

--hprof  monkey测试完成后生成内存快照,data/misc路径下生成,不常用,比较占空间

--ignore-security-exceptions  忽略权限问题的

--kill-process-after-error 当错误发生时杀进程

--monitor-native-crashes 监视崩溃时的本地代码

 

Monkey 模块

提示unknown host service时,查看5037端口被占用,输入命令:netstat -ano |findstr "5037",查看进程PID,在任务管理器关掉相关进程

如果提示devices notfound,可以尝试如下命令:

adb kill-server

adb start-server

adb remount

 adb 命令       adb shell monkey -p com.wzh.ydbg -v -v 1000

   参数-p用于约束限制,用此参数指定一个或多个包,

   参数-v 反馈信息基本,最高是-v -v -v。是最详细的日志。

      参数 -s 用于指定伪随机数生成器的seed值,

示例:

   Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100

     Monkey 测试2:adb shell monkey -p com.htc.Weather–s 10 100

     两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。

    参数 --throttle<毫秒>

     用于指定用户操作的时延,

      示例:adb shell monkey -p com.htc.Weather –throttle 3000 100

注意查找日志中的无响应问题和崩溃问题。无响应问题可以在日志中搜索 “ANR” ,崩溃问题搜索 “CRASH” ,内存泄露问题搜索"GC"(需进一步分析),异常问题搜索 “Exception”(如果出现空指针, NullPointerException,需格外重视)。

 Monkey Script

执行Monkey脚本命令:

  adb shell monkey -f<scriptfile><event-count>

  x和y 通过Android SDK里tools里的uiautomatorviewer  的bounds选项查看

上述图片代表一个点击操作。

 

MonkeyScript实践

 脚本实例如下图:

上图前四行是固定格式。不用修改。

 选中的俩行需格外注意,设置不好将导致脚本无法正确吊起应用。

 使用方法:

1.先把脚本传到手机上

adb push 脚本 /data/local/tmp/

2.进入手机启动

  在上述路径下,输入monkey -f 脚本.script 次数。

在电脑端输入命令启动如下:

总结点

应用必须要允许被外部吊起, Android:exported=“true” 该属性必须设置为True;

MonkeyRunner

  

  

  

  

  

  

  

  

  

实现在搜索框中输入查询词,并截图

 

 使用monkeyrunner 调用脚本。

原文地址:https://www.cnblogs.com/xiangrikuidebuluo/p/9582362.html