Monkey测试

news2024/12/22 9:46:54

一、什么是 Monkey 测试

  • Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;
  • 通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样,不知道程序的任何用户交互方面的知识,就对界面进行无目的、乱点乱按的操作;
  • Monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法;
  • Monkey 程序是 Android 系统自带的,由 Java语言写成,在 Android 文件系统中存放路径: /system/framework/monkey.jar;
  • Monkey程序需要通过 adb 来运行

二、操作步骤

1、安装并配置好 adb 环境,可在cmd窗口输入adb shell命令验证

2、通过 adb 连接好设备;

(1).在手机上设置【设置】–【系统设置】–【开发人员选项】–打开【开发人员选项】–开启【USB调试】模式;

(2).将手机通过数据线和电脑相连接,使用adb devices 命令来查看设备连接是否正常

(2)关闭锁屏,保持常亮

3、获取被测应用的包名;

方法一: 通过adb命令

a、PC连接Android设备

b、Android设备中点开app,app的任何界面都可以;

c、cmd命令行中输入:adb shell dumpsys window w |findstr / |findstr name=

如下图:其中 com.im.todayz为应用包名 ,fw.earntoday.ui.activity.MainActivity为当前运行的activity界面
在这里插入图片描述

方法二:aapt命令查看(aapt是sdk自带的一个工具,在sdk/builds-tools目录下,需要添加到环境变量)

命令: aapt dump badging + apk所在的绝对路径 + apk文件名称

例如:aapt dump badging C:\Users\admin\Desktop\app-google-release-1.8.7.apk

运行后的结果中以下两行分别是应用包名package和入口activity名称

package: name=’com.estrongs.android.pop’
launchable-activity: name=’com.estrongs.android.pop.view.FileExplorerActivity’

4、手机上安装好被测应用,打开cmd命令界面执行 Monkey 命令进行测试

三、Monkey 命令说明

adb shell monkey + 行为参数 + “>” + {日志保存路径}

示例:

adb shell monkey -p com.xxx.myapp -s 1002 --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000 > d:\mylog.log

  1. -p + {被测应用包名} 指定一个或多个包,只针对指定包名进行测试 如:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader
  2. -s {数字} 指定测试的种子值/序列值,规定操作步骤,如果使用相同的 seed 值再次运行 Monkey,将生成相同的事件序列。用于测试验证,复现bug。只有自己一个测试的时候可以随便取一个数字
  3. –throttle + {毫秒单位时间} 如:–throttle 100 事件之间插入的固定延迟,单位毫秒。通过这个选项可以减缓Monkey的执行速度。如果不指定,Monkey将尽可能快的产生并执行事件
  4. –ignore-timeouts 测试时忽略应用程序发生的超时错误,若发生超时,将继续发送事件给系统,直到事件计数完成(若不设置此项,在遇到超时时,Monkey测试 将停止运行)
  5. –ignore-security-exception 测试时忽略程序发生的异常错误,若发生异常,将继续发送事件给系统,直到事件计数完成(若不设置此项,在遇到异常时,Monkey 将停止运行)
  6. –ignore-crashes 测试时忽略应用程序崩溃(Force&Close错误),若发生奔溃,将继续发送事件给系统,直到事件计数完成(若不设置此项,在遇到奔溃时,Monkey 将停止运行
  7. –ignore-native-crashes 测试时忽略本地代码导致的崩溃,若发生崩溃,将继续发送事件给系统,直到事件计数完成(若不设置此项,在遇到本地代码导致的奔溃时,Monkey 将停止运行)
  8. –monitor-native-crashes 监视崩溃时的本地代码
  9. {数字} 1000000 Monkey 测试事件次数,也即指令次数
  10. -v 每个 -v 都将增加反馈信息的级别。共3个级别,因此 -v -v -v 可以提供最详细的设置信息。
    -v:0级,除启动提示、测试完成和最终结果外提供较少信息
    -v -v:1级,提供较详细测试信息,如逐个发送到 Activity 的事件
    -v -v -v:2级,提供更详细安装信息,如测试中被选中或未被选中的 Activity
  11. > + {日志路径} > d:\mylog.log Monkey 测试日志记录文件,若文件存在则直接记录到文件,若文件不存在则会自动创建文件记录
  12. 关于事件数的百分比,一般情况下不需要去修改。除非是测试的某一个动作是高概率事件的时候
    [–pct-touch PERCENT 触摸事件百分比
    [–pct-motion PERCENT] 滑动事件百分比
    [–pct-trackball PERCENT] 轨迹事件百分比
    [–pct-syskeys PERCENT] 系统事件百分比
    [–pct-nav PERCENT] 基本导航事件百分比
    [–pct-majornav PERCENT] 主要导航事件百分比
    [–pct-appswitch PERCENT] Activity启动事件百分比
    [–pct-flip PERCENT] 键盘翻转事件百分比
    [–pct-anyevent PERCENT] 其它事件百分比
    [–pct-pinchzoom PERCENT] 缩放事件百分比

四、结果分析整理

从 Monkey 日志中看问题:

1、程序无响应的问题:在日志中搜索 “ANR”
2、 崩溃问题:在日志中搜索 “Exception”或Crash

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

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

相关文章

JVM垃圾回收算法整理

JVM垃圾回收算法整理前言关键概念了解标记–清除算法复制算法标记–整理算法分代收集算法仰天大笑出门去,我辈岂是蓬蒿人前言 大概内容: jvm垃圾回收算法: 1、“标记–清除”算法;首先标记出所有需要被回收的对象,然…

搭建自己的SSR

Vue SSR介绍 是什么 官方文档:https://ssr.vuejs.org/Vue SSR(Vue.js Server-Side Rendering) 是 Vue.js 官方提供的一个服务端渲染(同构应用)解 决方案使用它可以构建同构应用还是基于原有的 Vue.js 技术栈 官方文档…

XXL-JOB逻辑自测及执行参数配置踩坑

概述 关于XXL-JOB的使用遇到的问题记录。对XXL-JOB不熟的,可以先参考分布式任务调度平台XXL-JOB深度实战 实战 业务DTO定义如下: Data public class AdAccountDTO {private String accountId;/*** yyyy-MM-dd HH:mm:ss*/private String startCreateT…

ThingBoard源码解析-缓存

配置 TB支持两种缓存:Caffeine和Redis,通过配置cache.type来指定使用哪种缓存。 位于 org.thingsboard.server.cache Caffeine 配置类:CaffeineCacheConfiguration Configuration ConditionalOnProperty(prefix "cache", value "t…

HTML CSS 个人网页设计 WEB前端大作业代码

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

【计算机毕业设计】7.线上花店系统maven源码

一、系统截图(需要演示视频可以私聊) 摘 要 随着互联网突飞猛进的发展及其对人们的生活产生至关重要的影响,线上购花,送货到家的购物方式受到了越来越多顾客的接受与喜爱。线上花卉小铺的设计与实现不仅可以带来更广泛的选择与实…

餐饮业如何现业绩突破性增长?

疫情反复无常,餐饮人每天都面临着极大的挑战:无法预测的关店通知、突如其来的禁止堂食命令......餐饮店客流减少,业绩下滑成为不可避免的趋势。 在这种情形下,不少餐饮老板拒绝“躺平”,上演“花式自救”:…

cpu设计和实现(数据预取)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面说过了一条指令经过cpu处理的时候需要经历几个阶段。通过实验,我们发现,哪怕是再简单的ori指令也要经历取指、译码、执…

MyBatis是什么?使用方式?

目录 前言: 一、概念讲述 1.什么是MyBatis? 2.官网网址 二、使用方式 1.pom.xml里面添加依赖包 2.新建统一配置文件(俗称数据库连接文件) 3.新建立映射文件 (俗称数据库表对应xml) 4.建立数据库表…

ArcMap中之提取影像数据边界

1、前言 手里有一些经过裁剪的不规则多边形影像数据(如图例所示),希望能批量获取该类影像的边界信息,即影像对应的面信息,边界线信息。这里我们提供一种利用镶嵌数据集Footprint图层的方法来获取,面&#…

基于Python机器学习及深度学习在空间模拟与时间预测应用

了解机器学习的发展历史、计算原理、基本定义,熟悉机器学习方法的分类,常用机器学习方法,以及模型的评估与选择;熟悉数据预处理的流程,掌握python程序包的使用;理解机器学习在生态水文中的应用,…

超实用的图片处理技巧,一分钟轻松完成图片编辑

图片想必大家都很熟悉,无论是我们平时在聊天的时候使用的表情包或者是在工作中插入的插图都属于图片,在使用图片的时候大家会遇到各种各样的问题,比如上传的图片格式不对、使用的图片尺寸太大等等,都会导致图片无法正常使用&#…

[附源码]java毕业设计医院就诊流程管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

c++旅行商问题 (暴力解)

目录一、旅行商问题简介旅行商问题问题概述问题由来二、枚举所有方案1、思路2、代码3、复杂度分析三、深度优先搜索1、思路2、代码3、复杂度分析一、旅行商问题简介 旅行商问题 TSP,即旅行商问题,又称TSP问题(Traveling Salesman Problem&am…

白盒测试与黑盒测试

白盒测试技术 白盒测试技术也称结构性测试,是一种设计测试用例的方法,一般用于分析程序的内部结构,使用该方法测试程序时测试者可以看到被测试程序,并分析其内部结构。 按照被测试测试时是否需要执行测试程序可以分为静态和动态…

RK3399平台开发系列讲解(中断篇)中断控制器驱动初始化

🚀返回专栏总目录 文章目录 一、设备树源文件1.1、gic控制器节点1.2、timer节点二、中断控制器匹配表三、中断控制器初始化3.1、函数of_irq_init3.2、函数gicv3_of_init3.3、函数gic_init_bases沉淀、分享、成长,让自己和他人都能有所收获!😄 一、设备树源文件 ARM64架构…

web前端网页制作课作业:甜甜圈蛋糕店(HTML+CSS+JavaScript)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

用DIV+CSS技术设计的水果介绍网站(web前端网页制作课作业)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

NodeJs实战-Express构建照片存储网站(2)-上传、展示文件

Express构建照片存储网站2-上传、展示文件静态资源显示图片photo页面展示文件夹下的图片上传文件增加上传页面的路由增加提交接口的路由网站效果图项目地址上一节使用的静态数据存储的图片的数据,本节增加如下功能 1–上传文件 2–展示文件 静态资源显示图片 app.…

企业微信自建应用手动授权,获取用户详细信息

开始开发 最后更新:2022/10/11 企业微信提供了OAuth的授权登录方式,可以让从企业微信终端打开的网页获取成员的身份信息,从而免去登录的环节。 企业应用中的URL链接(包括自定义菜单或者消息中的链接),均可…