monkey命令的使用

news2024/9/29 3:26:48

一、monkey的概念

Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法,只针对Activity做测试,不能对Service做测试。

二、monkey的使用

1、运行原理

adb shell monkey

在这里插入图片描述

2、monkey的基本命令

1、help命令

adb shell monkey -help

在这里插入图片描述

2、指定应用的命令-p

adb shell monkey -p 应用的包名 随机事件数 案例:对计算器实现1000次随机事件 获取计算器app的包名

adb shell dumpsys window | findstr mCurrentFocus

发送随机事件

 adb shell monkey -p com.lilysgame.calculatorjw 100

在这里插入图片描述
不指定包,直接发送monkey事件,是对android下的所有的app都可能启动并执行 adb shell monkey 1000

3、-v:用于调控monkey运行日志的等级

-v:显示开始、事件、结束结果几个数据

-v -v:提供较为详细的测试信息,如逐个发送到Activity的 事件

-v -v -v:最详细的日志信息

adb shell monkey -p com.lilysgame.calculatorjw -v 100

4、-s:种子数

指定了相同的种子数,那么这两次monkey运行所发送的事件类型和顺序就是一样的。

常见面试题:做了一次monkey测试,出现一个bug,怎么复现?

指定和上一次相同的种子数,再运行一遍

-s 任意的数字或者字母

adb shell monkey -p com.lilysgame.calculatorjw -v -s 种子数 100 adb shell monkey -p com.lilysgame.calculatorjw -v -s 20220309 100 adb shell monkey -p com.lilysgame.calculatorjw -v -s 20220309 100

5、–throttle:指定事件之间的时间间隔

调整发送事件的频率

–throttle 毫秒数

adb shell monkey -p com.lilysgame.calculatorjw -v -s 20220309 --throttle 2000 100

3、事件比例调整参数

1、–pct-touch:调整触摸事件百分比

触摸事件不单单是按键,它泛指发生在某一位置的一个down-up事件。

–pct-touch 整数,其实就是该事件的比例,要求整数不能超过100

#调整触摸事件百分比为100%

adb shell monkey -p com.tencent.mobileqq -v -v --pct-touch 100 200

2、–pct-motion:调整手势滑动事件百分比

触摸事件不单单是按键,它泛指发生在某一位置的一个down-up事件。

–pct-motion 整数,其实就是该事件的比例,要求整数不能超过100

#调整触摸事件百分比为100%

adb shell monkey -p com.tencent.mobileqq -v -v --pct-motion 100 200

3、–pct-rotation:旋转屏幕事件。

–pct-rotation 整数,其实就是该事件的比例,要求整数不能超过100

#调整触摸事件百分比为100%

adb shell monkey -p com.tencent.mobileqq -v -v --pct-rotation 100 200

4、–pct-appswitch:调整手势滑动事件百分比

调整app中的activity的切换比例。

–pct-appswitch 整数,其实就是该事件的比例,要求整数不能超过100

#调整触摸事件百分比为100%

adb shell monkey -p com.tencent.mobileqq -v -v --pct-appswitch 100 200

3、调试参数

1、–ignore-crashes : 忽略操作是崩溃异常

通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey -p com.tencent.mobileqq –-ignore-crashes -v 1000

2、–ignore-timeouts : 忽略超时

通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey -p com.tencent.mobileqq –-ignore-timeouts -v 1000

4、常见app测试的问题

crash问题–崩溃、闪退

ANR问题–应用程序不响应

exception问题

5、案例

qq随机事件测试案例:

#完整的monkey指令,直接在cmd下运行即可

#完整的monkey指令,直接在cmd下运行即可

adb shell monkey -p com.tencent.mobileqq --pct-touch 40 --pct-motion 25 --pct-appswitch 10 --pct-rotation 5 -s 1666 --throttle 400 --ignore-crashes --ignore-timeouts -v -v 20

  • 事件
  • ProfileWait(5000): 等待5秒
  • StartCaptureFramerate(): 获取帧率
  • EndCaptureFramerate(input): 结束获取帧率

二、monkey自定义脚本实战

1、测试案例

启动QQ,然后点击登录按钮进入登录页面,在登录界面输入用户名、密码,点击登录。

2、搭建模拟器环境

在itools或者夜神模拟器中,安装QQ最新版本,检查是否连接ADB,并获取App包名。

C:\Users\chang>adb devices
List of devices attached
127.0.0.1:56001 device
 
#获取App的包名,先启动qq并获取焦点
adb shell dumpsys window | findstr mCurrentFocus

3、脚本开发

Monkey脚本只能通过 坐标的方式来定位点击和移动事件的屏幕位置,这里就需要提前获取坐标信息。获取坐标信息的方法很多,最简单的方法就是打开手机中的开发人员选项,打开 “显示指针位置”。随后,在屏幕上的每次操作,在导航栏上都会显示坐标信息

Monkey脚本主要包含两部分,一部分是头文件信息,一部分是具体的monkey命令。
将下面脚本复制到e:\qq.txt文件中。

#头文件信息
type = raw events 
count = 1
speed = 1.0
 
#启动测试
start data >>
#启动应用的Activity
LaunchActivity(com.tencent.mobileqq,com.tencent.mobileqq.activity.LoginActivity)
UserWait(2000)
 
Tap(379,822,200) #点击登录按钮
UserWait(2000)
 
Tap(249,278,1000) #点击用户名文本框
DispatchString(2878228288)#输入qq号码
UserWait(2000)
 
Tap(228,381,1000) #点击用户名输入框
DispatchString(zxw1234)
UserWait(2000)
 
Tap(248,539,1000) #点击登录按钮
UserWait(2000)

4、执行脚本
先将脚本文件发送到移动设备上,然后调用adb shell monkey指令执行脚本

#将编写好的脚本push到模拟器的/data目录下
adb push e:\qq.txt /data
 
#调用monkey指令执行脚本
adb -s 127.0.0.1:56001 shell monkey -f /data/qq.txt -v 1

5、查看执行结果

C:\Users\chang>adb -s 127.0.0.1:56001 shell monkey -f /data/qq.txt -v 1
:Monkey: seed=1588719579198 count=1
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
Replaying 0 events with speed 1.0
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.tencent.mobileqq/.activity.LoginActivity;end
    // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mobileqq/.activity.LoginActivity } in package com.tencent.mobileqq
:Sending Touch (ACTION_DOWN): 0:(379.0,822.0)
:Sending Touch (ACTION_UP): 0:(379.0,822.0)
:Sending Touch (ACTION_DOWN): 0:(249.0,278.0)
:Sending Touch (ACTION_UP): 0:(249.0,278.0)
// Shell command input text zxw1234 status was 0
:Sending Touch (ACTION_DOWN): 0:(228.0,381.0)
:Sending Touch (ACTION_UP): 0:(228.0,381.0)
// Shell command input text zxw1234 status was 0
:Sending Touch (ACTION_DOWN): 0:(248.0,539.0)
:Sending Touch (ACTION_UP): 0:(248.0,539.0)
Events injected: 20
:Sending rotation degree=0, persist=false
:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0
## Network stats: elapsed time=13890ms (0ms mobile, 0ms wifi, 13890ms not connected)
// Monkey finished

最后给大家分享一下我的一些学习资料:

以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

关注下方我的微信公众号免费领取!↓ ↓ ↓ ↓ ↓

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

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

相关文章

智慧公厕是将数据、技术、业务深度融合的公共厕所敏捷化“操作系统”

文明社会的进步离不开公共设施的不断创新和提升。而在这些公共设施中,公共厕所一直是一个备受关注和改善的领域。近年来,随着智慧城市建设的推进,智慧公厕成为了城市管理的重要一环。智慧公厕不仅仅是为公众提供方便和舒适的便利设施&#xf…

效率翻倍:使用 ERP 系统自动执行这 5 项任务

现代商业的特点是企业各个方面都在快速发展,几乎每个想要成功的企业都会面临集成软件解决方案以改善其运营的必要性。保持竞争优势并减少生产所需的资源量对于成功很关键。这就是为什么在业务流程自动化方面,**ERP系统**大有可为。 以下是企业可以从 ER…

安卓应用的MD5、SHA1值和公钥可以这样知道

安卓应用的MD值、SHA1和android公钥,对于没有了解过非对称对称加密,不了解数字证书原理的运维工程师或者前端工程师来说,简直是天书,摸索半天都不知道是什么东西,特别是现在上架需要备案,而备案又要求填写这…

深信服应用交付管理系统远程命令执行漏洞复现

文章目录 深信服应用交付管理系统远程命令执行漏洞复现0x01 前言0x02 漏洞描述0x03 影响范围0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 深信服应用交付管理系统远程命令执行漏洞复现 0x01 前言 本次测试仅供学习使用,如若非法他用,与本…

London Dock丨伦敦一区的房产明星,拥揽泰晤士河美景,尽享都市奢华生活

生活在伦敦一区,似乎就意味跻身上流阶层 皆是精英环绕,也为下一代创造了极好的社区氛围 所谓“一方水土养一方人”,泰晤士河穿过的伦敦 也孕育着伦敦人的礼貌绅士与严谨认真。 河流,是城市发展的源头。 源远流长的塞纳河&…

极坐标转化

在数学中,极坐标系是一个二维坐标系统。该坐标系统中任意位置可由一个夹角和一段相对原点—极点的距离来表示。极坐标系的应用领域十分广泛,包括数学、物理、工程、航海、航空以及机器人领域。两点间的关系用夹角和距离很容易表示时,极坐标系…

这几招真管用!找回丢失的iPhone的好方法!

你昂贵的iPhone不见了。它丢了吗?它被偷了吗?如果你把iPhone弄丢了,你可以从各种其他来源找到它,包括iPad、Mac、iCloud和Apple Watch。 你可以使用iCloud网站上的苹果“查找我的”应用程序、你的任何其他苹果设备或你家人注册的设备来追踪它。或者从“查找我的”应用程序…

U盘数据恢复软件推荐,数据恢复就这么简单!

“太让人头疼啦!u盘数据总是会丢失,各位友友们有什么好用的u盘数据恢复软件可以推荐吗?真的非常需要!” 随着社会的不断发展,u盘已经成为大部分人的日常必备用品。但是在使用的过程中,也会出现各种意外&…

全球色选机市场到2030年将达到44亿美元

色选机是一种通过光学原理对物料进行筛选的设备。它可用于对各种粮食、塑料、矿石等物料进行颜色和杂质筛选,以提高产品质量和回收率。这种设备通常由给料系统、分选系统、真空气路系统和电控系统等组成 根据阿谱尔(APO)的统计及预测&#xf…

浮动元素导致被遮住元素单击事件不响应

有时候浮动元素会遮住下面元素&#xff0c;并导致下面元素click事件不响应。看如下代码&#xff1a; <template><Base><div class"btn" click"onBtn">被遮挡button</div><div class"left-floating"></div>…

单条视频涨粉50w,逃出大英博物馆背后的逻辑是什么?

为洞察小红书平台的内容创作趋势及品牌营销策略&#xff0c;新红推出8月月度榜单&#xff0c;从创作者、品牌、品类多方面入手&#xff0c;解析月榜数据&#xff0c;为从业者提供参考。 一条视频涨粉50w 情感共鸣是爆火的核心 据8月的『涨粉排行榜』TOP500数据显示&#xff0c…

“大图模型”亮相外滩大会,蚂蚁开创大模型与图计算融合研究

“生成式人工智能是近40年来最重要的技术革命”&#xff0c;这是微软联合创始人比尔盖茨最新的研判。当智能涌现&#xff0c;如何推动科学研究、应用创新&#xff0c;成为业界关注的焦点。 9月7日&#xff0c;在2023外滩大会“新一代数据底座——探索图智能的应用与发展”分论…

ATTransUNet:一种增强型混合Transformer结构用于超声图像分割

ATTransUNet 期刊分析摘要贡献方法整体框架1.Adaptive Token Extraction Module2.Feature Reprojection Mechanism3.Selective Feature Reinforcement Module 实验1.对比实验2.消融实验2.1 Ablation of the Number of Tokens and Transformer layers2.2 Ablation of the Featur…

IT运维:使用数据分析平台监控H3C交换机(进阶)

概述 本文基于《IT运维&#xff1a;使用鸿鹄监控H3C交换机》&#xff08;以下简称原文&#xff09;文章进行了优化。主要优化部分包括H3C交换机日志进入到鸿鹄后&#xff0c;如何进行字段抽取&#xff0c;图表的展示&#xff0c;以及包括思华为交换机等的抽取规则。 ●字段抽取…

论文创新点

【醍醐灌顶】论文创新点一定要是没人做过的&#xff1f;盘点几种寻找idea的万能模板_哔哩哔哩_bilibilihallo这里是新新&#xff0c;本期视频盘点了几种百用不腻的找论文idea寻找方法&#xff0c;希望对你们也能有所帮助&#xff01;视频中新新所整理的论文合集可以关注我的公众…

lambda表达式介绍

前言 lambda表达式是C11标准才支持的&#xff0c;有了它以后在一些地方进行使用会方便很多&#xff0c;尤其在一些需要仿函数的地方&#xff0c;lambda表达式完全可以替代它的功能。代码的可读性也会提高。 目录 1.lambda表达式 2.lambda表达式语法 3.函数对象和lambda表达…

STM32使用FAT文件系统-代码简读

FAT的一些基础知识、概念先看我这一篇&#xff1a; FAT32文件和目录的组织方式_fat32文件系统架构设计_暴躁的野生猿的博客-CSDN博客 fat文件系统的所有外部接口都在ff.h中 物理驱动器、逻辑驱动器 一个物理驱动器就是一个真实的存储设备&#xff0c;例如一个硬盘、一个内存…

抓拍摄像机开关量控制4K高清手机远程看图建筑生长定时缩时相机

作为物联网数据采集解决方案专业提供商,数采物联网小编daq-iot 在这里做以下内容介绍,并诚挚的欢迎大家讨论和交流。 项目案例参考视频&#xff1a; https://www.bilibili.com/video/BV1Kp4y1T7wQ/?spm_id_from333.999.0.0 4K高清太阳能供电定时拍照相机&#xff0c;通过光…

无涯教程-JavaScript - HEX2BIN函数

描述 HEX2BIN函数将十六进制数转换为二进制数。 语法 HEX2BIN (number, [places])争论 Argument描述Required/Optionalnumber 您要转换的十六进制数。 数字不能超过10个字符(40位)。数字的最高有效位是符号位(从右数第40位)。其余的39位是幅度位。 负数使用二进制补码表示。…

人工智能在电子商务中的突破性优势

最近都听说人工智能&#xff08;AI&#xff09;吗&#xff1f;电子商务的人工智能方面尤其受欢迎。当您以正确的方式使用正确的 AI技术时&#xff0c;您可以彻底改变您的经营方式。AI可帮助您节省时间、减少手动工作并提高数据的质量和准确性。 从本质上讲&#xff0c;您现在可…