zoukankan      html  css  js  c++  java
  • Monkey学习笔记

    1.monkey

    1.1 mokey介绍

    1.monkey测试时Android平台自动化的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动TrackBall、按键等操作来对设备上的程序进行压力测试,检测程序多久时间会发生异常

    monkey是命令行工具

    弱点:monkey虽然可以根据一个指定的命令脚本发送按键消息,但不支持条件判断,也不支持读取待测界面的值来执行验证操作

    monkey用来做什么?可以用来做压力测试也可以用来做自动化测试

    monkey什么时候用?等你们产品稳定了,没有特别多的bug时,一般用monkey去测试待测应用的稳定性、健壮性(是否会出现闪退、崩溃);整机测试

     

    1.2 monkey命令格式

    步骤:

    1.启动安卓模拟机/真机

    2.点击运行--输入cmd--进入命令行界面

    3.查看设备连接情况 adb devices (adb调试工具连接安卓模拟器参考:https://jingyan.baidu.com/article/ed15cb1ba2b7561be2698111.html

    4.在命令行界面输入monkey命令

     

    1.3 如何获取包名,即Package?

    命令行:

    1. adb shell dumpsys activity | find "mFocusedActivity" ---------获取当前启动在前台的app包名(注意:如果是8.0以上系统,将mFocuseActivity替换成mResumeActivity,不好用时,使用方法2和方法3)

    2. adb shell pm list packages -------------获取手机中所有的包名

    3. adb shell 进入到手机linux命令行模式,查看所有的包名

      cd /data/data进行查看 如QQ包名:com.tencent.mobileqq

    1.4 monkey常见参数-01

    -p

    用于约束限制,用此参数指定一个或多个包(Package,即App名字)。指定包名后,monkey将只允许系统指定的App。如果不指定包名,monkey将启动设备中的所有app

    命令:

    adb shell monkey -p com.lemon.lemonban 1000

    说明:

    com.lemon.lemonban 为包名,1000是事件数(模拟1000此随机用户事件)

    1.5 monkey常见参数-02

    -s

    用于指定伪随机数生成器的seed值,如果seed相同,则两次monkey测试产生的事件序列时是相同的

    命令:

    monkey测试1: adb shell monkey -p com.lemon.lemonban -s 101 100 提前指定

    monkey测试2: adb shell monkey -p com.lemon.lemonban -s 101 100 提前指定

    101表示一个伪随机数,指定的操作步骤是1->2->3->4,下次再执行101表示和上次执行事件顺序一致,可以用例复现bug,

    一般跑monkey 都会带上 -s

    注意:事件次数----100,必须要放在最后一位

    1.6 monkey 常见参数-03

    -v 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别

    -v 日志级别 Level0

    说明:缺省值,只提供启动提示、测试完成和最终结果等少量信息

    -v -v 日志级别 Level1

    说明:提供较为详细的日志,包括每个发送到Activity的事件信息

    -v -v -v 日志级别 Level2

    说明:最详细的日志,包括测试中的选中/未选中的Activity信息

     

    命令:adb shell monkey -p com.lemon.lemonban -v -v -v 100 > D:monkey.txt -----将日志信息重定向到monkey.txt文件中,便于查看

    1.7 monkey 常见参数-04

    --throttle <毫秒>

    用于指定用户操作(即事件)间的时间间隔,单位是毫秒

    命令:

    adb shell monkey -p com.lemon.lemonban -v -v -v --throttle 3000 100

    --throttle 3000 :每个事件间隔3000ms

     

    --random-throttle

    在事件之间插入随机延迟,随机延迟范围为0到throttle设置的事件,单位为毫秒

    命令:

    adb shell monkey -p com.lemon.lemonban --throttle 5000 --randomize-throttle

    说明:执行100次monkey随机事件,每次事件的间隔在0到5000毫秒之间不固定

     

    1.8 monkey常见参数-05

    --pkg-whitelist-file 白名单,后面接txt文件

    适用场景:需要同时对多个包进行monkey测试,可以将包名写到txt文件中,设置为白名单,monkey会自动只跑白名单中的app

    1.第一步,将需要设置的白名单包名放入txt文档,注意路径和文档名字必须都是英文,存放D:whitlelist.txt

    com.tencent.moblieqq
    com.android.music

    2.把这个文件拉到安卓机中,放到/data/local/tmp下面

    adb push D:whitelist.txt /data/local/tmp 文件路径可以通过将txt文件拖到cmd中

    命令:

    adb shell monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt 100

     

    --pkg-blacklist-file 黑名单

    命令:

    adb shell monkey --pkg-blacklist-file /data/local/tmp/blacklist.txt 100

     

    1.9 monkey常见参数 -06

    百分比事件:

    (1)pct-touch --触摸事件,点击时间百分比

    (2)pct-motion--动作事件,设定动作时间百分比

    (3)pct-trackball --轨迹球事件,设定轨迹球事件百分比

    (4)pct-nav--基本导航事件,设定基本导航事件百分比,输入设备上、下、左、右键

    (5)pct-majornav-主要导航事件,设定主要导航事件百分比,兼容中间建、返回键、菜单键

    (6)pct-syskeys--系统导航事件,设定系统导航事件百分比,HOME、BACK建、拨号键及音量键等

    (7)pct-appswitch--Activity事件,设定启动Activity事件百分比

    (8)pct-anyevent--不常用事件,设定不常用事件百分比

    用法:用法:adb shell monkey 事件参数 <percent>

    例如:adb shell monkey -v -p com.youdao.calculator --pct-touch 1 --pct-motion 2 --pct-trackball 3 --pct-nav 4 --pct-majornav 5 --pct-syskeys 6 --pct-appswitch 7 --pct-anyevent 8 50

     

     

  • 相关阅读:
    Postman:Pre-request Script
    PHP修改脚本最大执行时间和最大内存限制
    PHP函数:array_chunk
    PHP出现SSL certificate:unable to get local issuer certificate的解决办法
    Linux命令:chown
    PHP函数:fopen
    PHP常量:JSON_UNESCAPED_UNICODE
    Android -- 贝塞尔曲线公式的推导和简单使用
    Java -- 浅入Java反射机制
    Java -- 深入浅出GC自动回收机制
  • 原文地址:https://www.cnblogs.com/bugoobird/p/13655043.html
Copyright © 2011-2022 走看看