zoukankan      html  css  js  c++  java
  • monkey测试命令

    Monkey

    举例:adb shell monkey –p cn.com.pconline.android.browser -v 1000 > d:log_20201102.txt

    用法:

    C:Userswztshine>adb shell
    a9xproltechn:/ $ monkey
    args: []
    usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
                  [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
                  [--ignore-crashes] [--ignore-timeouts]
                  [--ignore-security-exceptions]
                  [--monitor-native-crashes] [--ignore-native-crashes]
                  [--kill-process-after-error] [--hprof]
                  [--match-description TEXT]
                  [--pct-touch PERCENT] [--pct-motion PERCENT]
                  [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
                  [--pct-nav PERCENT] [--pct-majornav PERCENT]
                  [--pct-appswitch PERCENT] [--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] ...]
                  [--throttle MILLISEC] [--randomize-throttle]
                  [--profile-wait MILLISEC]
                  [--device-sleep-time MILLISEC]
                  [--randomize-script]
                  [--script-log]
                  [--bugreport]
                  [--periodic-bugreport]
                  [--permission-target-system]
                  COUNT
    
    1. 最简单的命令:adb shell monkey <事件数>

      adb shell monkey 20

    2. 日志:三种详细程度: -v, -v -v, -v -v -v

      adb shell monkey -v 20

    3. seed复现步骤:seed是某个步骤的号,通过 "-s seed号" 可以指定当前事件的seed号,然后通过这个seed号,可以复现之前的步骤。操作序列虽然是随机生成的,但只要指定了相同的Seed值,就可以保证两次测试产生的随机操作序列完全相同

      adb shell monkey -v -s 234 20

    4. adb shell monkey -v -s 234 20

    5. 事件间的时间间隔: --throttle 毫秒数

      adb shell monkey --throttle 3000 20

    6. 各种事件类型占比:--pct-touch 百分比

      adb shell monkey -v --pct-touch 90 20

    7. 忽略崩溃等错误,使monkey脚本继续运行: --ignore-crashes

      adb shell monkey -v --ignore-crashes 20

    8. 忽略超时异常:--ignore-timeouts

      adb shell monkey -v --ignore-timeouts 20

    日志 -v -v level 0(缺省值)除启动、测试完成和最终的结果之外,提供较少的信息。-v –v Level 1 提供较为详细的测试信息,如逐个发送到的Activity的事件-v –v –v level 3 提供极为详细的测试信息,如测试中被选中的或者未被选中的Activity
    事件 -s 伪随机数生成器seed值,如果使用相同的seed值,会产生相同的事件序列
    延迟 --throttle 在事件之间插入延迟,通过这个选项可以减缓Monkey的执行速
    随机延迟 --randomize-throttle 在事件之间插入随机延迟,通过这个选项可以减缓Monkey的执行速
    --pct-touch 调整触摸事件的百分比(一个触摸事件是由一个down事件和一个up事件组合完成)即按下与抬起。对应代码0
    --pct-rotation 调整旋转事件的百分比.对应代码4。该事件由一个rotation事件组成,其中degree表示的是旋转方向,顺时针旋转,0表示旋转90度的方向,1表示旋转180度的方向,2表示旋转270度的方向,3表示旋转360度的方向
    --pct-pinchzoom 调整缩放事件的百分比.对应代码2
    --pct-motion 调整动作事件百分比,动作事件是有屏幕上某处的一个down事件,一系列的伪随机事件和一个up事件组成。例如滑动屏幕。对应代码1
    --pct-trackball 调整轨迹球事件的百分比,轨迹事件是由一个或几个随机的移动组成,有时还伴随着点击事件。对应代码3
    --pct-nav 调整基本导航事件的百分比,导航事件由安卓手机本身的up、down、left、right事件组成,用的较少。对应代码5
    --pct-majornav 调整主要航事件百分比,如键盘的中间键,回退按键、菜单按键,对应代码6
    --pct-syskeys 调整按键事件的百分比,这些按键通常被保留,由 系统使用,如Home、Back、Start Call、End Call及音量控制键,对应代码7
    --pct-appswitch 调整Activity启动的百分比。(在随机的时间间隔中,Monkey将执行一个startActivity()调用,作为最大程度覆盖被测包中全部Activity的一种方法)对应代码8
    --pct-anyevent 调整其他事件的百分比。(这包含所有其他事件,如按键、其他在设备上不常用的按钮等),对应代码10
    --pct-flip 翻译翻转,键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回 ,对应代码9
    约束条件 -p 如果你指定一个或多个包,Monkey将只允许访问这些包中的Activity。如果你的应用程序需要访问这些包(如选择联系人)以外的Activity,你需要指定这些包。如果你不指定任何包,Monkey将允许系统启动所有包的Activity。指定多个包,使用多个-p,一个-p后面接一个包名。
    --pkg-blacklist-file <存放包名的txt文件路径> 设置黑名单,即不执行的apk应用
    --pkg-whitelist-file <存放包名的txt文件路径> 设置白名单,即只执行的apk应用,作用和-p一样,注意,黑白名单只能设置其中一种,即不能同时既设置黑名单,又设置白名单
    -c 如果你指定一个或多个类别,Monkey将只允许系统启动这些指定类别中列出的Activity。如果你不指定任何类别,Monkey将选择谢列类别中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多个类别使用多个-c,每个-c指定一个类别。
    --port 为monkey开启专用端口。此时只monkey不会帮你乱点击,而此时你自己就是一只monkey了,在你乱点的时候,monkey会输出你点击后回馈的信息。如果你打完命令之后模拟器上没有启动你所要启动的包,你需要自己启动,但是你只能启动你-p中指定的那几个包。ctrl+c中断
    --step [-f scriptfile] 指定运行scriptfile的一些monkey事件,可以实现部分简单有序的功能
    调试 --dbg-no-events 设置此选项,Monkey将执行初始启动,进入一个测试Activity,并不会在进一步生成事件,即monkey会启动待测应用,但不发送任何消息。为了得到最佳结果,结合参数-v,一个或多个包的约束,以及一个保持Monkey运行30秒或更长时间的非零值,从而提供了一个可以监视应用程序所调用的包之间转换的环境。
    --hprof 设置此选项,将在Monkey事件序列之前和之后立即生成profiling报告。 这将会在data/misc中生成大文件(~5Mb)
    --ignore-crashes 通常,当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将 继续向系统发送事件,直到计数完成。
    --ignore-timeouts 通常,当应用程序发生任何超时错误(如“Application Not Responding”对 话框)时,Monkey将停止运行。如果设置此选项,Monkey将继 续向系统发送事件,直到计数完成
    --ignore-security-exceptions 通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将 停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。
    --kill-process-after-error 通常,当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。当设置了此选项时,将会通知系 统停止发生错误的进程。注意,正常的(成功的)结束,并没有停止启动的进程,设备只是在结束事件之 后,简单地保持在最后的状态。
    --monitor-native-crashes 监视并报告Android系统中本地代码的崩溃事件。如果设置了--kill-process-after-error, 系统将停止运行。
    --wait-dbg 停止执行中的Monkey,直到有调试器和它相连接

    辅助命令:

    1. adb 命令

      adb devices        # 查看连接的所有设备
      adb shell           # 进入手机shell
      adb -s <device id> shell   # 多个设备时,进入某个手机的shell
      adb disconnect     # 断开所有连接
      adb connect 192.168.1.100 # 连接某个设备
      adb kill-server    # 关闭adb命令
      adb start-server   # 启动adb
      adb -s <device id> root  # root
      adb -s <devices id> remount # remount
      
    2. 列出手机安装的包

      adb shell pm list packages -3
      adb shell pm list packages
      
    3. adb获取包名以及当前运行的activity

      C:Userswztshine>adb shell
      a9xproltechn:/ $ dumpsys window windows|grep -E 'mCurrentFocus|FocusedApp'
      
        mCurrentFocus=Window{e2607e2 u0 com.sankuai.meituan/com.sankuai.waimai.business.page.homepage.TakeoutActivity} # / 前面是包名,/后面是activity名
        mFocusedApp=AppWindowToken{ac1afe4 token=Token{13d0152 ActivityRecord{a0171dd u0 com.sankuai.meituan/com.sankuai.waimai.business.page.homepage.TakeoutActivity t214}}}
      
    4. 启动App应用

      adb shell am start -n package/package-activity
      adb shell am start -n com.twitter.android/com.twitter.android.StartActivity
      
    5. 安装APK

      adb  install twitter.apk
      adb  install-multiple *.apk
      
    6. 卸载APK

      adb uninstall packageName //卸载时保留数据和缓存目录
      adb uninstall -k packageName //清除缓存
      adb shell pm clear packageName
      
    7. 手机和电脑传输数据

      adb pull /sdcard/gen.apk ~/virtual  # 从手机传输到电脑
      adb  push ~/Desktop/image/timg.jpg /sdcard/DCIM/Camera/timg.jpg # 从电脑传输到手机
      
    8. 通过keyevent来控制设备

      adb shell input keyevent 26 # 点亮/熄灭手机屏幕
      
    9. 杀掉monkey进程:

      adb shell
      ps -A|grep monkey
      kill -9 <pid>
      
  • 相关阅读:
    django DEBUG=False
    Lftp 简单使用步骤
    django admin管理后台中文添加问题
    Rsync同步设置的一例
    在nginx中,禁止IP访问.只可以使用域名访问.
    python imaplib无痕取信的主要
    Centos安装配置Postfix邮件服务器--网址
    还没有写完准备弡上cpickle 还有字典
    python 截取某一天的日志,简单操作
    abp 关闭审计日志
  • 原文地址:https://www.cnblogs.com/wztshine/p/14354317.html
Copyright © 2011-2022 走看看