Monkey命令详解

2023-11-06

命令:adb shell monkey +命令参数

所有的参数都需要放在monkey和设置的次数之间;参数的顺序可以调整,若带了-p ,-p必须放在monkey之后,参数必须在-p和次数之间

2.monkey基础命令

adb shell monkey -p 包名 -v -s seed值 压测次数

参数-p:

此命令用于指定要测试的包,若不指定则在整个系统中执行

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

如下出现事件执行次数和所耗时间,则算是执行成功;

b)指定多个包执行10次:adb shell monkey -p 包名 –p 包名 10

参数 -v:

用于指定反馈日志的详细程度级别(共3个级别)

1.Level 0: adb shell monkey -p 包名 -v 10

默认级别,仅提供启动、测试完成和最终结果等少量信息

2.Level 1: adb shell monkey -p 包名 -v -v 10

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

3.Level 2: adb shell monkey -p 包名 -v -v -v 10

提供最详细的日志,包括了测试中选中/未选中的Activity信息

参数 -s:

用于指定伪随机数生成器的seed值

命令:adb shell monkey -p 包名 –s seed值 执行次数

作用:如果seed值相同,则两次Monkey测试所产生的事件序列也相同的。

示例

测试1:adb shell monkey -p com.qq –s 15888 100

测试2:adb shell monkey -p com.qq –s 15888 100

说明

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。(也就是说,重复执行上次的随机操作)

操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

运行:

>>不间断操作500次              adb shell monkey -p 包名 -v 500  

>>每个操作间隔500ms,共执行100次             adb shell  monkey -p 包名  -v-v --throttle  500 100

>>每个操作间隔100ms,共执行1000次 ,其中点击事件占比50%,轨迹50%                 adb shell monkey  -p  包名  -v-v --pct-touch  50  --pct-trackball 50 --throttle 100 1000

>>日志重定向到桌面文件夹                               adb shell monkey  -p  包名  -v-v --pct-touch  50  --pct-trackball 50 --throttle 100 1000>C:\Users\xyp\Desktop\Android脚本\1.log

>>每个操作间隔500ms、崩溃、超时、许可错误继续执行                       adb shell  monkey -p  包名   --throttle  500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v-v-v  1000000>C:\Users\xyp\Desktop\Android脚本\1.log

停止monkey测试           

重新打开一个cmd窗口>>进入adb shell>>ps | grep monkey查找monkey进程>>kill  进程号结束monkey

日志分析

1. 查找出差步骤:

a)找到monkey里哪个地方出错

查看Monkey执行的是哪一个Activity,在switch后面找,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。

b)查看Monkey里面出错前的一些事件动作,手动执行该动作

>>Sleeping for XX milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件

>>Sending XX 就是代表一个操作,如下图的两个操作 应该就是一个点击事件。

c)若以上步骤还不能找出,则可以使用之前一样的seed,再执行monkey命令一遍,便于复现

2.测试结果分析:

>>程序无响应,ANR问题:在日志中搜索“ANR”

>>崩溃问题:在日志中搜索“CRASH”

>>其他问题:在日志中搜索”Exception”

monkey说明

--throttle   时间间隔

--ignore-crashes    忽略崩溃

--ignore-timeouts  忽略超时

--ignore-security-exceptions   忽略许可错误

--ignore-native-crashes  忽略本地崩溃

--monitor-native-crashes   监控本地崩溃

--pct-touch  触摸、点击

--pct-motion 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)

--pct-trackball  调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

--pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

--pct-majornav 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

--pct-syskeys 调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)

--pct-appswitch 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

--pct-flip 调整“键盘翻转”事件的百分比。

--pct-anyevent 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等

注意:各事件类型的百分比总数不能超过100%

下一篇博文,小博会专门说一下monkey测试中错误日志分析哦~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Monkey命令详解 的相关文章

  • 程序员有多难?测试适不适合女孩子做?看完这篇文章你就懂了

    一 程序员压力很大 压力是相对的 这个主要是去看跟谁比 做销售压力大吗 做市场压力大吗 做运营压力大吗 做产品压力大吗 压力大吗 肯定大呀 你看那些 996 的程序员都在那泣不成声了 好不容易说出这句话 有什么压力呀 955公司的程序员在旁
  • 测试工程师要进阶,就得明白这3点...

    在大型互联网公司带测试团队多年 也做过多年的测试工程师招聘工作 对测试工程师的能力也见过高高低低各种 今天 分享下这些年带领测试团队提高的一点思路和方法 还在成长期的测试工程师可以用来指导自己的学习 用这套框架给自己制定一套目标和学习框架
  • JAVA单元测试框架-13-TestNG中的Listener监听

    使用TestNG中的Listener完成监听测试 通过实现ITestListener里面的方法完成测试过程监听 public class TestListenner implements ITestListener Override pub
  • Firefox 或将强制启用 HTTPS 链接

    Mozilla 在最新上线的 Firefox 76 Nightly 版本中引入可选的 HTTPS only 模式 该模式仅允许连接到 HTTPS 站点 如果一切进行顺利的话 Firefox 接下来可能会在稳定版中面向所有用户推出该项功能 H
  • jmeter 安装配置

    一 进入官网 http jmeter apache org 1 第一步进入官网如下图 2 选择进行下载 下载下来为一个压缩包 解压即可 3 下载完成后 然后就进行解压 要注意版本对应的java要求 解压完成后就要配置环境变量了 4 环境变量
  • 卷麻了,00后测试用例写的比我还好,简直无地自容......

    经常看到无论是刚入职场的新人 还是工作了一段时间的老人 都会对编写测试用例感到困扰 例如 如何编写测试用例 作为一个测试新人 刚开始接触测试 对于怎么写测试用例很是头疼 无法接触需求 只能站在用户角度去做测试 但是这样情况会导致不能全方位测
  • 性能测试 —— Tomcat监控与调优:status页监控

    Tomcat服务器是一个免费的开放源代码的Web 应用服务器 Tomcat是Apache 软件基金会 Apache Software Foundation Jakarta 项目中的一个核心项目 由Apache Sun 和其他一些公司及个人共
  • 0基础,自学3个月转行软件测试,从月薪3k到12k我整理的超全学习指南

    大家好我是小娜 现在是一名软件测试测试工程师 工资在1w2阶段还需努力 我大学期间学的是电气工程及其自动化专业 可以说是一事无成哈哈 大学三天打鱼 两天筛网导致专业水平学的不怎么样 毕业后从事了一份销售 买房子 的工作 但是 销售工作压力大
  • 自动化测试工具——selenium 用前须知

    OK 经过上的过程 我相信你一定做出的相应的选择 如果你选择的是selenium 工具 那么接着往下阅读 首选你在开始selenium之前 需要花一到两个月时间去学一门语言 这里是根据没有语言基础的同学而定的 我推荐ruby python
  • 【干货】如何实现WinApp的UI自动化测试?

    WinApp WindowsAPP 是运行在Windows操作系统上的应用程序 通常会提供一个可视的界面 用于和用户交互 例如运行在Windows系统上的Microsoft Office PyCharm Visual Studio Code
  • UI自动化测试的正确姿势 —— Airtest设备连接&API详解第一篇

    一 背景 Airtest作为一款优秀的自动化测试工具 有着强大的API功能 处理日常自动化测试过程中需要的各类操作 今天就给大家逐一介绍关于设备连接和常用API部分 结合自动化测试中的各类需求 看看如何通过使用Airtest来快速实现 二
  • 【涨薪技术】深入接口测试之Mock技术

    01 为什么要用Mock 服务端与客户端约定了接口 但服务端还没有完成开发时 客户端一般由如下处理方式 1 在程序中写模拟数据 程序中增加垃圾代码 后期还要删除 可能对代码造成影响 模拟异步请求不方便 服务端接口开发完成后 需要重新书写网络
  • 提升Jmeter测试效率的9种参数化方法!

    jmeter工具无论做接口测试还是性能测试 参数化都是一个必须掌握且非常有用的知识点 参数化的使用场景 1 多个请求都是同一个ip地址 若服务器地址更换了 则脚本需要更改每个请求的ip 2 注册账号 不允许账号重复 想批量注册用户时 3 模
  • 软件测试面试题:如何测试App性能?

    为什么要做App性能测试 如果APP总是出现卡顿或网络延迟的情况 降低了用户的好感 用户可能会抛弃该App 换同类型的其他应用 如果APP的性能较好 用户体验高 使用起来丝滑顺畅 那该应用的用户粘性也必然会提高 那我们该如何做App性能测试
  • Appium 自动化自学篇 —— 初识Appium自动化!

    Appium 简介 随着移动终端的普及 手机应用越来越多 也越来越重要 而作为测试 的我们也要与时俱进 努力学习手机 App 的相关测试 文章将介绍手机自动化测试框架 Appium 那究竟什么是 Appium 呢 接下来我们一起来学习Pyt
  • Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

    前言 随着Web应用程序的不断发展 自动化测试已成为项目开发中必不可少的一环 然而 验证码的出现却经常会使自动化测试变得更具挑战性 为了解决这个问题 我们需要一种方法来自动识别和处理验证码 从而提高自动化测试的效率和准确性 本文将介绍如何封
  • 从零开始学习Web自动化:用Python和Selenium实现网站登录功能!

    Web自动化测试实战项目 使用Selenium和Python完成网站登录功能的自动化测试 本文将介绍如何使用Selenium和Python编写自动化测试脚本 对网站登录功能进行测试 我们将通过模拟用户在网站上输入用户名和密码 并点击登录按钮
  • 手机APP测试——如何进行安装、卸载、运行?

    手机APP测试 主要针对的是安卓 Android 和苹果IOS两大主流操作系统 主要考虑的就是功能性 兼容性 稳定性 易用性 性能等测试 今天先来讲讲如何进行安装 卸载 运行的内容 一 App安装 1 点击运行APP安装包 检测安装包是否正
  • 【2024全网最火最全性能教程】一文搞懂性能测试!

    性能测试概念 我们经常看到的性能测试概念 有人或称之为性能策略 或称之为性能方法 或称之为性能场景分类 大概可以看到性能测试 负载测试 压力测试 强度测试等一堆专有名词的解释 针对这些概念 我不知道你看到的时候会不会像我的感觉一样 乱 一个
  • 5年经验之谈 —— 为什么要做自动化测试?

    自动化测试是一种软件测试方法 通过编写和使用自动化脚本和工具 以自动执行测试用例并生成结果 自动化旨在替代手动测试过程 提高测试效率和准确性 自动化测试可以覆盖多种测试类型 包括功能测试 性能测试 安全测试等 以确保软件系统在各个方面的质量

随机推荐

  • JDBC(一)

    JDBC 什么是JDBC Java语言访问数据库的一种规范 是一套API JDBC Java Database Connectivity API 即Java数据库编程接口 是一组标准的Java语言中的接口和类 使用这些接口和类 Java客户
  • Wind River Workbench 3.x VxWorks项目类型

    今天学习了解了Wind River Workbench 3 x VxWorks项目类型及这些类型之间的关系 7种VxWorks项目类型如下图所示 如上图 Wind River Workbench 3 3 相关VxWorks项目类型有7种 分
  • c++ fibonacci

    代码示例 c 示例 include
  • Python虚拟环境工具

    以ubuntu 20 04环境为例 介绍Python虚拟环境工具的使用 一 venv Python 从3 3 版本开始 自带了一个虚拟环境 venv 支持创建独立的虚拟开发环境 用于管理所需包或模块的特定版本 1 工具安装 sudo apt
  • 【Ubuntu 18.04】安装terminator 并在右键菜单中添加open in termintor

    安装terminator sudo apt install terminator 一般会自动把其设置为默认终端 在右键菜单中添加open in terminator 这废了很大力气 安装Nautilus actions Nautilus a
  • 逆向效率提升工具与方法汇总(持续更新...)

    欢迎大家提供高效方法与工具 工具 油猴插件 SwitchyOmega Reres Fiddler插件编程猫 奇淫技巧 selenium Options常用参数 防检测 将浏览器navigator webdriver重置为False stea
  • STM32F103使用TIM3定时器输出两路PWM控制直流电机

    1 首先打开PWM输出实验例程 这里采用正点原子精英版例程 打开led c 对相关端口进行修改 void LED Init void GPIO InitTypeDef GPIO InitStructure RCC APB2PeriphClo
  • openlayers绘制范围圆

    drawCircleByStation参数是坐标 lng lat 绘制范围圆taylor drawCircleOld centerPosition radius 2000 callback color fff text let featur
  • springboot+顺利达驾校预约管理 毕业设计-附源码191748

    Springboot顺利达驾校预约管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化 电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用 信息时代的到来已成为不可阻挡的时尚潮流 人类发展的历史正进入一个新时
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 如何解决vue项目不能自动打开浏览器

    运行项目npm run dev 命令行中已经提示我们运行成功了 等了半天浏览器也没有自动打开 没办法我们只能自己手动输入了 那么我们如何在npm run dev之后自动打开浏览器呢 首先找到config index js文件 在文件modu
  • 扩栈

    int size 256 lt lt 20 256MB char p char malloc size size asm movl 0 esp n r p
  • linux下备份目录文件及目录

    一 关于Linux备份文件和应用的几个命令 tar和cp 在工作中 经常来备份文件和系统应用 常用到的主要是tar和cp命令 分别介绍如下 一 tar命令 这个现在经常使用用来打包 tar包指的是档案文件 tar cvf filename
  • Qt 中 QObjectCleanupHandler 使用总结

    背景 QObjectCleanupHandler 类用于清理 QObject 类对象 通常可以作为资源清理器使用 监视对象生命周期 概述 QObjectCleanupHandler 中管理的对象被 delete 后会自动从其管理到的象列表中
  • Java垃圾回收机制详解(万字总结!一篇入魂!)

    Java垃圾回收机制详解 之前在 Java内存区域详解 这篇文章中 详细介绍了JVM内存区域的划分 以及创建对象时内存的分配情况 Java的自动内存管理机制 除了自动申请内存还会自动释放内存 这篇文章就来说一说Java内存回收机制 首先我们
  • php验证密码账号,PHP密码验证

    我在PHP中进行了注册验证 我正在对每个字段进行故障排除 以查看代码是否符合标准 当我按下提交按钮时 唯一不起作用的部分是密码 确认密码代码块 我已经进行了几个小时的故障排除 似乎无法找到问题 有人可以指出这个问题吗 谢谢 define v
  • 超长上下文处理:基于Transformer上下文处理常见方法梳理

    原文链接 芝士AI吃鱼 目前已经采用多种方法来增加Transformer的上下文长度 主要侧重于缓解注意力计算的二次复杂度 例如 Transformer XL通过缓存先前的上下文 并允许随着层数的增加线性扩展上下文 Longformer采用
  • Zookeeper原理架构

    转自 http blog csdn net xuxiuning article details 51218941 本文纯属个人笔记 通俗易懂 转载请附上原文链接 部分资料摘自网络 如有雷同 纯属巧合 Zookeeper到底是什么 学一个东西
  • okhttp3源码解析(2)-拦截器 I

    okhttp3源码解析 2 拦截器 I 前言 上一篇博文讲到了无论发起同步请求还是异步请求 okhttp最后都通过getResponseWithInterceptorChain方法得到response 里面是一系列的拦截器通过责任链形式实现
  • Monkey命令详解

    命令 adb shell monkey 命令参数 所有的参数都需要放在monkey和设置的次数之间 参数的顺序可以调整 若带了 p p必须放在monkey之后 参数必须在 p和次数之间 2 monkey基础命令 adb shell monk