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

 

 

原文地址:https://www.cnblogs.com/bugoobird/p/13655043.html