一、Monkey介绍
Monkey是Android中的一个命令行工具,可在模拟器或实际设备中运行。通过向系统发送伪随机的用户事件流(例如按键、触摸屏、手势操作等),来实现对开发中的应用程序进行压力测试,即进行稳定性测试。

Monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。简而言之,就是利用工具模拟人的操作,如触摸屏幕、滑动Trackball、 按键等,对手机APP进行大量的随机的点按操作。

二、Monkey测试目的
主要目的就是为了测试APP是否会Crash(崩溃)

三、Monkey测试的特点
Monkey所产生的事件都是随机的,不会带有主观性
1、测试的对象仅为应用程序包,有一定的局限性
2、Monky测试使用的事件数据流是随机的,不能进行自定义
3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置

四、Monkey参数详解
adb的操作命令格式一般为:adb shell monkey +命令参数

1、-p <测试的包名列表>
用于约束限制,用此参数指定一个或多个包。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

1)不指定包:adb shell monkey 50

2)指定一个包执行50次:adb shell monkey -p 包名 50

3)指定多个包执行50次:adb shell monkey -p 包名1 -p 包名2 50

2、-v 显示日志详细程度
用于指定反馈信息级别(信息级别就是日志的详细程度)。总共分3个级别,分别对应的参数:

1)Level 0 : adb shell monkey -p 包名 -v 100 //默认级别,仅提供启动提示、测试完成和最终结果等少量信息

2)Level 1 : adb shell monkey -p 包名 -v -v 100 //提供较为详细的日志,包括每个发送到Activity的事件信息

3)Level 2 : adb shell monkey -p 包名 -v -v -v 100 //最详细的日志,包括了测试中选中/未选中的Activity信息

3、-s 伪随机数生成器的种子值
用于指定伪随机数生成器的seed值。如果使用相同的种子值重新运行Monkey,它将生成相同的事件序列,[-s 500 (事件序列) 1000(事件数)],例如:

1)test1:adb shell monkey -p com.youdao.dict -s 10 -v 100

2)test2:adb shell monkey -p com.youdao.dict -s 10 -v 100

4、--throttle < 毫秒>
在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被完成。

例如:adb shell monkey -p com.youdao.dict --throttle 200 50 //表示执行50个用户事件数,事件间隔为200毫秒

5、--ignore-crashes 忽略崩溃
当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,即使应用程序崩溃,Monkey将继续向系统发送事件,直到事件计数完成。

例如:adb shell monkey -p com.youdao.dict --ignore-crashes 100 //测试过程中即使程序崩溃,Monkey依然会继续发送事件,直到事件数目达到100为止

6、 --ignore-timeouts 忽略超时
当应用程序发生任何超时错误时(如“Application Not Responding”),Monkey将停止运行。如果设置此选项,即使应用程序发生ANR错误,Monkey将继续向系统发送事件,直到计数完成。

例如:adb shell monkey -p com.youdao.dict --ignore-timeouts 100 //测试过程中即使程序发生ANR错误,Monkey依然会继续发送事件,直到事件数目达到100为止

7、--monitor-native-crashes 监视本地崩溃代码
监视并报告Android系统中本地代码的崩溃事件。

例如:adb shell monkey -p com.youdao.dict --monitor-native-crashes 100 //原理同上

8、 --ignore-security-exceptions 忽略安全异常
当应用程序发生许可错误时(如证书许可,网络许可等),Monkey将停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

例如:adb shell monkey -p com.youdao.dict --ignore-security-exceptions 100 //原理同上

9、--kill-process-after-error 发生错误停止运行并保持当前状态
当应用程序发生错误时,停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

例如:adb shell monkey -p com.youdao.dict --kill-process-after-error 100 //同上

10、--pct-事件类别+事件类别百分比
用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)

操作事件简介

Monkey所执行的随机事件流中包含11大事件,分别是触摸(touch)、手势(motion)、缩放(pinchzoom)、轨迹(trackball)、屏幕旋转(rotation)、基本导航(nav)、主要导航(mojornav)、系统按键(syskeys)、Activity启动(appswitch)、键盘翻转(flip)、其他事件(anyevent)。Monkey通过这11大事件来模拟用户的常规操作,对手机App进行稳定性测试。

1)--pct-touch 触摸事件

2)--pct-motion 手势事件

3)–pct-pinchzoom 二指缩放事件

4)–pct-trackball 轨迹事件

5)–pct-rotation 屏幕旋转事件

6)–pct-nav 基本导航事件

7)–pct-majornav 主要导航事件

8)–pct-syskeys 系统按键事件

9)–pct-appswitch 启动activity事件

10)–pct-flip 键盘翻转事件

11)–pct-anyevent 其他类型事件

五、Monkey实例
实例:adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes --throttle 100 -v -v 10000 >D:\adb\monkey_log.txt //将跑完monkey后写入到电脑D盘的指定目录下并生成一个文件

查看生成的文件

————————————————
版权声明:本文为CSDN博主「一拳一只小趴菜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_64776928/article/details/126045278

adb命令之monkey使用的更多相关文章

  1. ADB 命令和monkey

    一.概要 1.什么是adb? adb全称为Android Debug Bridge,就是起到调试桥的作用.顾名思义,adb就是一个debug工具. 2.adb工作原理 不是很理解?那就来看看它的工作原 ...

  2. ADB命令与monkey

    adb devices查看已连接的设备 adb install package.apk adb shell monkey 1000 随机操作1000次当次操作可能会 adb无法使用,提示error: ...

  3. 安卓测试【三】adb简单命令及monkey使用

    Ⅰ 配置好android sdk环境变量之后,将android手机连接到电脑上,进行一些adb的简单命令的操作. adb,安卓调试桥,android   sdk的一个工具.直接操作管理安卓模拟器或者真 ...

  4. Monkey之常用ADB命令(新猿旺学习总结)

    查看 adb 版本                                     adb version获取连接设备及状态                           adb dev ...

  5. Android ADB命令大全

    通过ADB命令查看wifi密码.MAC地址.设备信息.操作文件.查看文件.日志信息.卸载.启动和安装APK等   ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-s ...

  6. Android的常用adb命令

    第一部分:1. ubuntu下配置环境anroid变量:在终端执行 sudo gedit /etc/profile 打开文本编辑器,在最后追加#setandroid environment2. 运行E ...

  7. 【转】】Android ADB命令大全

    ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootl ...

  8. 常用的adb命令

    在平时的工作中,会经常用到adb命令,在这里稍微整理了一下. 一.概要 1.什么是adb? adb全称为Android Debug Bridge,就是起到调试桥的作用.顾名思义,adb就是一个debu ...

  9. Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)

    ADB很强大,记住一些ADB命令有助于提高工作效率. 获取序列号: adb get-serialno 查看连接计算机的设备: adb devices 重启机器: adb reboot 重启到bootl ...

  10. Android 常用 adb 命令

    查看原文:http://blog.csdn.net/u010818425/article/details/52266593 (一)基础操作 安装app adb install -r xxx.apk / ...

随机推荐

  1. 路飞项目使用mysql数据库详细讲解

    目录 一.首先需要彻底删除原有的数据库步骤 二.去官网下载mysql步骤 三.安装mysql数据库步骤 四.一管理员身份进去cmd进行一系列命令启动 五.接下来为路飞项目创建数据库 六.luffy项目 ...

  2. Stable Diffusion 关键词tag语法教程

    提示词 Prompt Prompt 是输入到文生图模型的文字,不同的 Prompt 对于生成的图像质量有较大的影响 支持的语言Stable Diffusion, NovelAI等模型支持的输入语言为英 ...

  3. openssl国密算法库

    openssl国密算法库 一.开发背景 openssl是一个功能丰富且自包含的开源安全工具箱.它提供的主要功能有:SSL协议实现(包括SSLv2.SSLv3和TLSv1).大量软算法(对称/非对称/摘 ...

  4. AWK nr nf

    https://blog.csdn.net/sh13661847134/article/details/118018456 awk中NF,NR的含义awk中NF和NR的意义,其实你已经知道NF和NR的 ...

  5. C6657子卡模块设计资料:268-基于FMC接口的DSP TMS320C6657子卡模块

    基于FMC接口的DSP TMS320C6657子卡模块 一. 概述        FMC连接器是一种高速多pin的互连器件,广泛应用于板卡对接的设备中,特别是在xilinx公司的所有开发板中都使用.该 ...

  6. 代码随想录训练营day 1 |704 二分查找 27移除算法

    LeetCode 704.二分查找(C++) 题目链接 704.二分查找 题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 ...

  7. python备份文件(简易)

    步骤逻辑 要备份的文件夹:source = ["/opt/containerd"] 保存备份信息的文件夹 targz_dir = "/home/backup" ...

  8. vim 小记录

    将str1批量替换成str2 , 特殊符号前用转译符 \ :%s/str1/str2/g

  9. Containerd 安装及使用(yum及源码)

    yum 安装containerd 一.下载源码库: wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker- ...

  10. Visual Studio Code 如何设置成中文语言

    Visual Studio Code 是一款微软的代码编辑器,这款软件是比较不错的,用起来也比较方便,但是好多人在第一次安装的时候展现的是英文的,这对于一些小伙伴是比较头疼的问题,那如何调整为中文的呢 ...