zoukankan      html  css  js  c++  java
  • 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 调用脚本。

  • 相关阅读:
    Java学习开篇
    《我的姐姐》
    世上本无事,庸人自扰之
    这48小时
    补觉
    淡定
    es java api 设置index mapping 报错 mapping source must be pairs of fieldnames and properties definition.
    java mongodb groupby分组查询
    linux 常用命令
    mongodb too many users are authenticated
  • 原文地址:https://www.cnblogs.com/xiangrikuidebuluo/p/9582362.html
Copyright © 2011-2022 走看看