当前位置: 首页 > article >正文

Monkey Test简单介绍

什么是Monkey Test?顾名思义,就像一只猴子一样,它的下一步具有随机性。所以Monkey Test可以简单地理解为动作随机性测试!

Monkey是android模拟器或设备上运行的一个程序。它可以生成伪随机用户事件(例如点击、触碰或滑动等)流和很多的系统级事件(启动app activity等),对某个或某些指定的app应用进行压力测试,且能够生成日志分析文件。

为什么说它是伪随机呢?从多次调用Monkey命令生成的事件流看,它具有随机性。但是从每次调用Monkey命令来看,它是确定好的事件流。

直白点,本来需要手动地连续地长时间地对app程序做"点击"、“触碰”、“滑动”、"缩放"等动作的压力测试,现在让Monkey程序生成事件流完成了

1、查找Monkey程序

Monkey虽然是android系统中自带的程序,使用前还是需要先检查是否存在,可以使用adb命令进入android系统查看:

adb shell
cd /system/framework/
ls | grep monkey

monkey.jar

monkey.jar就是monkey程序,它由一个叫作monkey的shell脚本启动执行。shell脚本的存放路径为:/system/bin

adb shell
cd /system/bin
ls | grep monkey

monkey

2、Monkey命令参数

在adb shell进入android系统后,输入monkey命令,显示monkey程序的参数描述:

参数

常用参数含义如下:

类别参数描述
约束条件-p <allowed-package-name>需要测试的软件。一个-p对应一个软件,多个软件需要用多个-p。如果不使用-p指定软件,就表示指定所有的软件都需要测试
--pkg-whitelist-file PACKAGE_WHITELIST_FILE被测软件白名单。需要测试的软件可以放在白名单txt文件中,而txt文件需要放在android系统的某个路径下。和多个-p实现相同的作用
--pkg-blacklist-file PACKAGE_BLACKLIST_FILE被测软件黑名单,不测试的软件可以放在黑名单txt文件中。那么测试的就是黑名单外的软件
调试--ignore-crashes当应用崩溃或遇到任何类型的未处理异常时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止
--ignore-timeouts当应用遇到任何类型的超时错误(例如“应用无响应”对话框)时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止
--ignore-security-exceptions当应用遇到任何类型的权限错误(例如,如果它尝试启动需要特定权限的 Activity)时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止
--monitor-native-crashes监视并报告 Android 系统原生代码中发生的崩溃。如果设置了 --kill-process-after-error,系统将会停止
--ignore-native-crashes忽略Android系统原生代码中发生的崩溃
--kill-process-after-error当 Monkey 因出错而停止运行时,出现故障的应用将保持运行状态。设置此选项后,它将会指示系统停止发生错误的进程
--wait-dbg阻止 Monkey 执行,直到为其连接了调试程序
事件-s <seed>伪随机数生成器的种子值。当两次运行monkey时的seed值相同时,事件流相同。可以用它来复现问题
--throttle <milliseconds>在事件之间插入固定的延迟时间
--pct-touch <percent>设置触碰屏幕事件的百分比
--pct-motion <percent>设置滑动屏幕事件的百分比
--pct-trackball <percent>调整轨迹球事件所占百分比。(轨迹球事件包括一个或多个随机动作,有时后跟点击。)
--pct-nav <percent>调整“基本”导航事件所占百分比。(导航事件包括向上/向下/向左/向右,作为方向输入设备的输入。)
--pct-majornav <percent>调整“主要”导航事件所占百分比。(这些导航事件通常会导致界面中的操作,例如 5 方向键的中间按钮、返回键或菜单键。)
--pct-syskeys <percent>设置系统按键事件的百分比
--pct-appswitch <percent>Activity启动事件的百分比
--pct-anyevent <percent>调整其他类型事件所占百分比。这包括所有其他类型的事件,例如按键、设备上的其他不太常用的按钮等等
--pct-pinchzoom <percent>设置缩放操作的百分比
--pct-flip <percent>设置翻转操作的百分比
其他-v输出日志的详细程度。每个 -v 都会增加详细程度级别。级别 0(默认值)只提供启动通知、测试完成和最终结果。级别 1 提供有关测试在运行时的更多详细信息,例如发送到您的 Activity 的各个事件。级别 2 提供更详细的设置信息,例如已选择或未选择用于测试的 Activity
COUNT随机事件次数

所有事件的百分比之和不能超过100!!!

touch事件占大头;导航事件用在导航app上;车机系统一般没有翻转事件

以上参数描述来自官方文档:https://developer.android.com/studio/test/monkey?hl=zh-cn

3、Monkey命令示例

示例

这么长的命令,如果每次执行都需要手动输入,未免太麻烦了些!如果某个功能需要多条命令或多个参数处理,我们可以放在批处理文件中执行!



http://www.kler.cn/a/1738.html

相关文章:

  • 网络编程UDP—socket实现(C++)
  • 前端项目 npm报错解决记录
  • java 加密算法
  • 单片机优先级
  • GXUOJ-算法-第二次作业
  • WebRTC Simulcast 大小流介绍与优化实践
  • 树莓派(3B):启动流程,系统初始化配置,引脚图图示说明
  • 【云原生|Docker】04-docker的资源限制
  • 【小猫爪】AUTOSAR学习笔记06-Communication Stack之ComM模块
  • 2023年“网络安全”赛项江苏省淮安市赛题解析(超详细)
  • AI独立开发者:一周涨粉8万赚2W美元;推特#HustleGPT GPT-4创业挑战;即刻#AIHackathon创业者在行动 | ShowMeAI周刊
  • 使用Hexo+Github搭建部署个人博客
  • PyTorch 之 神经网络 Mnist 分类任务
  • 学习 Python 之 Pygame 开发魂斗罗(八)
  • 动态规划算法
  • 断言assert
  • 【多线程】多线程案例
  • GitHub 上有些什么好玩的项目?
  • 不是,到底有多少种图片懒加载方式?
  • 【正点原子FPGA连载】 第三十三章基于lwip的tftp server实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
  • 修剪灌木[蓝桥杯2022初赛]
  • Java基础:笔试题
  • sharding-jdbc四种分片策略
  • 复制带随机指针的复杂链表
  • 【二】一起算法---队列:STL queue、手写循环队列、双端队列和单调队列、优先队列
  • 【微信小程序】-- 分包 - 独立分包 分包预下载(四十五)