Android Monkey测试

1.直接使用

当配置好一切环境的前提下,仅需套用以下基础语法,即可简单使用(更多的命令可以去Android的官网查询)

adb shell monkey -p [包名] -v [需要点击的次数]

举例,如我这里的包名是 com.test.chj233 ,需要随机生成 1万次的点击事件

adb shell monkey -p com.test.chj233 -v 10000

2.配置环境

如果你的是还未配置好adb环境,参照如下:

        一、windows平台 

                windows,进入配置好环境变量即可(网上教程太多了),cmd验证是否可以使用,

         直接输入“adb”,若不是提示“无法识别adb命令”,即可。

        二、MAC平台

                mac系统下,打开“终端”

                1.输入 open -e .bash_profile 打开.bash_profile文件,这个文件用于存放Shell程序指令

                 2.配置路径如:export PATH=${PATH}:[你本地的路径]/platform-tools;举例,

                    如我这里是 Users/test/rostrum/sdk/platform-tools; 那么应该是

                    export PATH=${PATH}:/Users/test/rostrum/sdk/platform-tools;

                    配置好之后,关闭文件。

        3.刷新配置 输入 source .bash_profile 注意这个很重要,不刷新不生效。

        4.输入 adb 看下“终端”有无反应(是不是还是无法识别,如果不是则表示配置成功)

3.在AndroidStudi中使用

AndroidStudio中有Terminal(控制台),MAC版本在此处使用以下命令需要注意

adb shell monkey -p [包名] -v [需要点击的次数]

需要先输入 source .bash_profile 来刷新配置,否则依然会报“command not found: adb”

4. Monkey 命令

以下命令来源于 Android开发者官网

类别选项说明
常规--help输出简单的使用指南。
-v命令行上的每个 -v 都会增加详细程度级别。级别 0(默认值)只提供启动通知、测试完成和最终结果。级别 1 提供有关测试在运行时的更多详细信息,例如发送到您的 Activity 的各个事件。级别 2 提供更详细的设置信息,例如已选择或未选择用于测试的 Activity。
事件-s <seed>伪随机数生成器的种子值。如果您使用相同的种子值重新运行 Monkey,它将会生成相同的事件序列。
--throttle <milliseconds>在事件之间插入固定的延迟时间。您可以使用此选项减慢 Monkey 速度。如果未指定,则不延迟,系统会尽快地生成事件。
--pct-touch <percent>调整轻触事件所占百分比。(轻触事件是指屏幕上的单个位置上的按下/释放事件。)
--pct-motion <percent>调整动作事件所占百分比。(动作事件包括屏幕上某个位置的按下事件,一系列伪随机动作和一个释放事件。)
--pct-trackball <percent>调整轨迹球事件所占百分比。(轨迹球事件包括一个或多个随机动作,有时后跟点击。)
--pct-nav <percent>调整“基本”导航事件所占百分比。(导航事件包括向上/向下/向左/向右,作为方向输入设备的输入。)
--pct-majornav <percent>调整“主要”导航事件所占百分比。(这些导航事件通常会导致界面中的操作,例如 5 方向键的中间按钮、返回键或菜单键。)
--pct-syskeys <percent>调整“系统”按键事件所占百分比。(这些按键通常预留供系统使用,例如“主屏幕”、“返回”、“发起通话”、“结束通话”或“音量控件”。)
--pct-appswitch <percent>调整 Activity 启动次数所占百分比。Monkey 会以随机间隔发起 startActivity() 调用,以最大限度地覆盖软件包中的所有 Activity。
--pct-anyevent <percent>调整其他类型事件所占百分比。这包括所有其他类型的事件,例如按键、设备上的其他不太常用的按钮等等。
约束条件-p <allowed-package-name>如果您通过这种方式指定一个或多个软件包,Monkey 将仅允许系统访问这些软件包内的 Activity。如果应用需要访问其他软件包中的 Activity(例如选择联系人),您还需要指定这些软件包。如果未指定任何软件包,Monkey 将允许系统启动所有软件包中的 Activity。要指定多个软件包,请多次使用 -p 选项,每个软件包对应一个 -p 选项。
-c <main-category>如果您通过这种方式指定一个或多个类别,Monkey 将仅允许系统访问其中一个指定类别中所列的 Activity。如果没有指定任何类别,Monkey 会选择 Intent.CATEGORY_LAUNCHER 或 Intent.CATEGORY_MONKEY 类别所列的 Activity。要指定多个类别,请多次使用 -c 选项,每个类别对应一个 -c 选项。
调试--dbg-no-events指定后,Monkey 将初始启动到测试 Activity,但不会生成任何其他事件。为了获得最佳结果,请结合使用 -v、一个或多个软件包约束条件以及非零限制,以使 Monkey 运行 30 秒或更长时间。这提供了一个环境,您可以在其中监控应用调用的软件包转换操作。
--hprof如果设置此选项,则会在 Monkey 事件序列之前和之后立即生成分析报告。这将在 data/misc 下生成大型(约为 5Mb)文件,因此请谨慎使用。如需了解如何分析性能剖析报告,请参阅剖析应用性能。
--ignore-crashes通常,当应用崩溃或遇到任何类型的未处理异常时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止。
--ignore-timeouts通常,当应用遇到任何类型的超时错误(例如“应用无响应”对话框)时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止。
--ignore-security-exceptions通常,当应用遇到任何类型的权限错误(例如,如果它尝试启动需要特定权限的 Activity)时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止。
--kill-process-after-error通常,当 Monkey 因出错而停止运行时,出现故障的应用将保持运行状态。设置此选项后,它将会指示系统停止发生错误的进程。注意,在正常(成功)完成情况下,已启动的进程不会停止,并且设备仅会处于最终事件之后的最后状态。
--monitor-native-crashes监视并报告 Android 系统原生代码中发生的崩溃。如果设置了 --kill-process-after-error,系统将会停止。
--wait-dbg阻止 Monkey 执行,直到为其连接了调试程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 关机和重启

关机和重启 关机和重启之前最好先数据数据同步一下 # 将数据由内存同步到硬盘sync 关机 #shutdown [选项] 时间#立即进入维护模式shutdown now#立即重启shutdown -r now#20:00 重新启动计算机shutdown -r 20:00& #立即关机shutdown -h now# 20:00 关闭计算机shutdown -h 20…

K8S系列文章之 Shell批处理脚本应用

一、简要说明 1、批处理脚本介绍 命令批处理脚本&#xff1a;/usr/shell/all.sh文件批量分发脚本&#xff1a;/usr/shell/scp.sh 2、批处理命令脚本原理 读取/usr/shell/hosts文件中的ip列表使用$*接收脚本所有参数for循环遍历hosts文件中的ip地址通过ssh host cmd 实现目的…

【elasticSearch系】3.完整搭建详尽版elk

话不多说,我们先看下经典的elk 是由哪些组件搭建组合起来的 elasticSearch和kibana搭建 可以查看之前我搭建elasticsearch和kibana 的这篇文章 logstash搭建 为了和之前我搭建elasticsearch和kibana版本保持一致,这里我们还是选择7.17.3 下载地址 点击下载,这里为了方…

wangEditor5实现@评论功能

需求描述&#xff1a;在输入框输入后显示用户列表&#xff0c;实现人功能 当前环境&#xff1a;vue3viteelementPluswangEditor5 需要插件&#xff1a;wangeditor/plugin-mention 安装插件&#xff1a;npm i wangeditor/plugin-mention 输入框组件分两部分&#xff1a;1. wa…

谈谈对Spring MVC的理解

问题分析&#xff1a; SpringMVC 是一种基于 Java 语言开发&#xff0c;实现了 Web MVC 设计模式&#xff0c;请求驱动类型 的轻量级 Web 框架。 SpringMVC采用了 MVC 架构模式的思想&#xff0c;通过把 Model&#xff0c;View&#xff0c;Controller 分离&#xff0c;将 Web 层…

基于vue3+webpack5+qiankun实现微前端

一 主应用改造&#xff08;又称基座改造&#xff09; 1 在主应用中安装qiankun(npm i qiankun -S) 2 在src下新建micro-app.js文件&#xff0c;用于存放所有子应用。 const microApps [// 当匹配到activeRule 的时候&#xff0c;请求获取entry资源&#xff0c;渲染到containe…

软件测试基础篇——MySQL

MySQL 1、数据库技术概述 数据库database&#xff1a;存放和管理各种数据的仓库&#xff0c;操作的对象主要是【数据data】&#xff0c;科学的组织和存储数据&#xff0c;高效的获取和处理数据SQL&#xff1a;结构化查询语言&#xff0c;专为**关系型数据库而建立的操作语言&…

JavaScript类

JavaScript 类(class) 类是用于创建对象的模板。 我们使用 class 关键字来创建一个类&#xff0c;类体在一对大括号 {} 中&#xff0c;我们可以在大括号 {} 中定义类成员的位置&#xff0c;如方法或构造函数。 每个类中包含了一个特殊的方法 constructor()&#xff0c;它是类…

vue3项目中引入dialog插件,支持最大最小化、还原、拖拽

效果图&#xff1a; 上图是layui-vue组件库中的layer插件&#xff0c;我的项目使用的是element-plus组件库&#xff0c;在用不上layui组件库的情况下&#xff0c;就单独引入layui/layer-vue这个弹层插件就可以了 npm地址&#xff1a;layui/layer-vue - npm layui-vue组件库地址…

UnrealEngine - 网络同步之连接篇

1 连接过程 - 握手 传统的 C/S 架构下&#xff0c;Client 和 Server 通常会建立一条抽象的 Connection&#xff0c;用来进行两端的通信。 UE 的官方文档中提供了 Client 连接到 Server 的示例 &#xff0c;简单来说分为如下几步&#xff1a; 打包构建好 Client 和 Server 进程…

11-数据结构-栈和队列的应用(C语言)

栈和队列的应用 目录 栈和队列的应用 一、括号匹配&#xff08;栈&#xff09; 二、表达式的各种转换 (1)中缀转后缀(手工) (2)后缀转中缀表达式(手工) (3)中缀转后缀(栈) (4)中缀转后缀&#xff08;树&#xff09; (5)后缀表达式求值 (6)中缀表达式求值&#xff08;栈…

EasyExcel多次写入数据多个EasyExcel文件导出到zip压缩文件

笔者最近需要导出一百多万条数据到Excel&#xff0c;已经超出单张工作表的最大容量&#xff08;2^201048576&#xff09;&#xff0c;需要导出到多个工作表或多个Excel文件。 海量数据导出面临的问题有以下几个&#xff1a; 如果一次性查出所有数据&#xff0c;很可能内存溢出…

jackson库收发json格式数据和ajax发送json格式的数据

一、jackson库收发json格式数据 jackson库是maven仓库中用来实现组织json数据功能的库。 json格式  json格式一个组织数据的字符文本格式&#xff0c;它用键值对的方式存贮数据&#xff0c;json数据都是有一对对键值对组成的&#xff0c;键只能是字符串&#xff0c;用双引号包…

ArcGIS API for JavaScript 4.x 教程(一) 显示一张地图

了解如何创建和显示带有基本地图图层的地图。 地图包含地理数据层。地图包含一个基本地图层&#xff0c;以及一个或多个数据层&#xff08;可选&#xff09;。可以使用地图视图显示地图的特定区域&#xff0c;并设置位置和缩放级别。 本教程将向您展示如何使用地形底图层创建和…

时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 时序预测 | Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 1.Matlab实现基于GRNN广义回归神经网络的电力负荷预测模型 2.单变量时间序列预测; 3.多指标评价,评价指标包括:R2、MAE、MBE等,代码质量极高…

XML学习基础知识归纳(一)

一、XML基本概述 &#xff08;1&#xff09;概念&#xff1a;XML是可扩展的标记语言&#xff0c;xml文档的后缀名为 .xml &#xff08;2&#xff09;作用&#xff1a;用来用来传输和存储数据&#xff0c;不用于表现和展示数据&#xff0c;这点呢相比于HTML来说是不同的&#…

vue2中实现响应式的原理object.defineproperty+发布定于模式的缺点

缺点&#xff1a; 1 不能监测到新增属性或者删除属性 2 不能检测到根据数组索引替换或新增的值。也无法监测数组索引的变化。 由于object.defineproperty&#xff08;对象&#xff0c;描述&#xff0c;对象的某个属性&#xff09;其实是对对象的某个属性进行修改&#xff0c;因…

python函数、运算符等简单介绍3(无顺序)

set&#xff08;集合&#xff09; 集合(set) -> 负责存储【不重复的数据】&#xff0c;并且是【无序存储】 的容器&#xff0c;主要用来去重和逻辑比较 set1 {1,2,3,4,58,7,4,1,2,3,5} print(set1) print(type(set1)) # 输出结果&#xff1a; {1, 2, 3, 4, 5, 7, 58} <…

svn文章四:版本控制策略 - 穿越时光机:SVN版本控制进阶技巧

文章四&#xff1a;版本控制策略 - “穿越时光机&#xff1a;SVN版本控制进阶技巧” 概述&#xff1a;版本控制是SVN的核心功能。本文将深入研究SVN版本控制的进阶技巧&#xff0c;包括标签管理、历史查看、版本回退等&#xff0c;让您成为版本控制的高手。 1. 引言 版本控制…

excel 之 VBA

1、excel和VBA 高效办公&#xff0c;把重复性的工作写成VBA代码&#xff08;VB代码的衍生物&#xff0c;语法和VBA相同&#xff09;。 首先打开开发工具模式&#xff0c;如果没有选显卡&#xff0c;需要手动打开 打开程序编辑界面 快捷键 altF11一般操作 程序调试&#xf…