monkey测试工具

article/2025/10/18 10:08:56

Monkey的概念:

“猴子测试”是指没有测试经验的人甚至对计算机根本不了解的人(就像猴子一样)不需要知道程序的任何用户交互方面的知识,如果给他一个程序,他就会针对他看到的界面进行操作,其操作是无目的的、乱点乱按的。

这种测试方式在产品周期中的早期阶段会找到很多很好的bug,为用户节省不少的时间。

Monkey的介绍

它是Android系统自带一个命令行工具,可以运行在模拟器里或者真是设备中运行。

monkey向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。

monkey包括很多选项,大致四大类:

1.基本配置选项,如设置尝试的事件数量。

2.运行约束选项,如设置只对单独的一个包进行测试。

3.事件类型和频率。

4.调试选项

monkey命令特性

不可能使用monkey来指定做一样测试,重复做很多次。因为monkey产生的是伪随机的事件流。但是我们可以通过添加命令选项将操作限制在一定的范围内。

一,首先你要先搭建环境

1.先下载jdk   具体安装流程请参考:JDK 安装 Java环境变量配置 详细教程_子澈课堂的博客-CSDN博客_jdk环境变量配置

2.再下载sdk  具体安装流程请参考:Android Monkey测试入门-1-Android SDK环境安装_Anthony_tester的博客-CSDN博客_monkey测试工具安装

二,打开手机的开发者调试工具,用usb数据线链接你的手机;

三,monkey前的准备命令

1.windows+r 输入cmd进入dos命令行;

2.输入adb devices 下面出现类似下图的组合你就成功了;(

3.再输入 adb shell pm list packages    查看你的手机所有的安装包;输入 adb shell pm list packages -3 查看手机上所有的第三方安装包,尽量让测试机少安装第三方软件,这样可以尽快的找到想要的安装包名称;

四,首先用一个最简单的mokey去试着找哪个是你想要的安装包名称:

1./ / -p参数:表示指定测试的程序(空格后面跟安装包名字,拿刚才的第三方安装包一个个试)

  / /-v参数:表示查看monkey执行过程的信息(日志级别)(-v 越多越详细,最多三个)

  / /数字100:表示测试事件数为100

 指定一个包   adb shell monkey  -p  com.tencent.news  -v -v -v  100   (此时指定软件会被打开并开始乱点乱按)
 指定多个包   adb shell monkey -p com.tencent.news -p com.pdfreader -p com.widgets  -v 1000
 不指定包       adb shell monkey -v 1000

 结果如图:


 

Event percentages(事件百分比):

0:触摸事件百分比,参数--pct-touch

1:滑动事件百分比,参数--pct-motion

2:缩放事件百分比,参数--pct-pinchzoom

3:轨迹球事件百分比,参数--pct-trackball

4:屏幕旋转事件百分比,参数--pct-rotation

5:暂时不知道这个是什么

6:基本导航事件百分比,参数--pct-nav

7:主要导航事件百分比,参数--pct-majornav

8:系统事件百分比,参数--pct-syskeys

9:Activity启动事件百分比,参数--pct-appswitch

10:键盘翻转事件百分比,参数--pct-flip

11:其他事件百分比,参数--pct-anyevent

2.尽管monkey产生是伪随机事件流,但是我们希望我们的操作有一定的规律性,即按键、触屏等各类事件操作有所偏重。

eg:(1).对文本框操作,需要更多的按键操作。

        (2).玩游戏,需要更多的点击和滑动操作。

3.--throttle  设定两个事件之间一个固定延迟,可以减缓monkey的执行速度。如果不指定,monkey将不会被延迟,事件将尽可能快地生成和发送消息。单位:毫秒

eg:adb shell monkey  --throttle  3000  -p com.tencent.news  100     

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。

4.--pct-touch  (空格后加数字)设定触屏事件生成的百分比。触屏事件是一个有手指按下,抬起事件的手势。

eg:      adb shell monkey   --throttle  3000   --pct-touch  50  -p  com.tencent.news  100  

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定触屏的事件占比为50%。

5.--pct-motion  设定滑动事件生成的百分比。滑动事件是一个先在某一个位置手指按下,滑动一段距离后再抬起手指的手势。

eg:       adb shell monkey   --throttle  3000 --pct-motion  50  -p  com.tencent.news  100  

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定滑动的事件占比为50%。

6.--pct-trackball  设定轨迹球事件生成的百分比。轨迹球事件是包含一系列随机移动和单击事件的事件

eg:adb shell monkey --throttle  3000 --pct-trackball  50  -p  com.tencent.news  100  

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定轨迹球的事件占比为50%。

7.--pct-nav  设定基本导航事件生成的百分比。基本导航事件是模拟方向性在设备上输入向上、向下、向左、向右的事件。

eg:adb shell monkey --throttle  3000 --pct-nav  40  -p  com.tencent.news  100 

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定基本导航事件的占比为40%。

8.--pct-majornav  设定主要导航事件生成的百分比。主要导航事件通常会导致UI产生回馈信息,如单击Back键、Home键、Menu键等、

eg:     adb shell monkey  --throttle  3000   --pct-majornav  40  -p  com.tencent.news  100  

向腾讯新闻发送1000次随机事件,每次事件间隔为3秒。其中设定主要导航事件的占比为40%。

9.--hprof

指定了该参数,Monkey会在发送事件序列的前、后,生成性能分析报告。通常会在data/misc目录下生成一个5MB左右大小的文件

10.--ignore-crashes 

通常情况下,monkey会在测试应用程序崩溃或者发生异常后停止运行,若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到指定事件全部运行完毕。

11.--ignore-timeouts 

通常情况下,当应用程序发生任何超时错误(application  not  responding)时,monkey将停止运行。若指定了该参数,则monkey将会在产生错误信息后,继续向系统发送事件,直到指定事件全部运行完毕

12.--ignore-security-exceptions    通常情况下,指定应用程序发生许可错误时(如证书许可,网络许可等),monkey将停止运行。若指定了该参数,即使应用程序发生许可错误,monkey会继续向系统发送事件,直到指定事件全部运行完毕。

eg:adb shell monkey  --throttle  3000 --pct-trackball  50  -p  com.tencent.news  --ignore-security-exceptions  100  

 


http://chatgpt.dhexx.cn/article/FkFfeRyM.shtml

相关文章

Monkey的测试原理和方法

参考资料:http://blog.csdn.net/io_field/article/details/52189972 一、Monkey测试原理:Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等)&#xf…

iOS端Monkey测试

说起Monkey测试,大家想到的是monkey测试只有安卓有,monkey测试只针对安卓app,今天给大家分享一下Monkey测试在iOS端也能跑!iOS端app也能使用Monkey测试来执行稳定性测试。 一、环境准备 1、准备Mac设备,并安装xcodeI…

Monkey测试工具详解

Monkey测试工具简介: Monkey是Android SDK 中附带的一个工具;Monkey测试的原理:利用socket通讯(Android客户端和服务器以TCP/UDP方式)的方式来模拟用户的按键输入、触摸屏输入、手势输入等;Monkey测试的…

Android Monkey测试

monkey通常用于对app进行压力测试,通过monkey工具在模拟器或设备中产生类似用户点击、触摸、手势等一些系统级的伪随机事件流以测试app的稳定性,这好比一只猴子随意操作设备。 一、monkey原理 monkey是一个用java编写的脚本,设备中存放在sy…

Monkey测试全过程

1.monkey测试的概念 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性…

Monkey测试(APP稳定性)

目录 1、Monkey简介 2、monkey程序介绍 3、Monkey测试前准备 4、Monkey测试命令 5、 Monkey测试结果(pass或者fail)的判断 6、Monkey Log的简单分析 7、汇总如图 1、Monkey简介 Monkey是Androld中的一个命令行工具,可以运行在模拟器里…

monkey 测试介绍

目录 前言 环境搭建 什么是Monkey Monkey 用来做什么 Monkey程序介绍 Monkey 架构 Monkey弱点 Monkey 参数大全 Monkey 命令 基本参数介绍 Monkey 实例 Monkey 查看包名 Monkey 日志分析 必须重视Crash 前言 Monkey 是Android SDK提供的一个命令行工具&#xff0…

一个简单的monkey测试工具

Monkey的概念: “猴子测试”是指没有测试经验的人甚至对计算机根本不了解的人(就像猴子一样)不需要知道程序的任何用户交互方面的知识,如果给他一个程序,他就会针对他看到的界面进行操作,其操作是无目的的…

monkey测试详解

一、monkey测试的定义 Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样&…

Monkey测试

一、什么是 Monkey 测试 Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样&a…

使用Monkey进行软件测试(随机测试+脚本测试)

文章目录 一、基础概念二、monkey测试的优缺点2.1 优点2.2缺点2.3 解决方案2.3.1 二次开发2.3.2 指定测试页面2.3.3 调整各种事件的比例2.3.3 编写自定义测试脚本2.3.4 分析APP特性,选择合适的方案 三、monkey测试的基本过程3.1 环境准备3.1.1环境3.1.2 配置过程 3.…

【Monkey测试】Monkey测试详解

一、什么是 Monkey 测试 Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样&a…

Linux 的 Kill -9命令

大家对kill -9 肯定非常熟悉,在工作中也经常用到。特别是你去重启tomcat时。 可是多半看来,我们对-9的理解只是表面而已。 很少有人(包括我)认真的去了解一下 kill -n 这个n到底是什么东东。自我批评一下。 好吧。我们来好好的认识…

kill进程.bat

输入端口号kill进程若出现中文乱码问题,则打开文件,点击另存为,将编码格式从UTF-8,改为ANSI,并将拓展名改为.bat,保存即可 echo off setlocal enabledelayedexpansion set /p port请输入端口号&#xff1…

shell中的kill命令

简介: 无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭。在Linux(还有Mac),你可以用一个"kill"命令强制终结它。在这个教程中,我们将展示给你多种方式使用"kill"…

Mysql的kill命令

在MySQL中有两个kill命令:一个是kill query 线程id,表示终止这个线程中正在执行的语句;一个是kill connection 线程id,这里connection可缺省,表示断开这个线程的连接,当然如果这个线程有语句正在执行&#…

kill与kill -9的区别

kill命令格式: kill -Signal pid pid是进程号,可以用 ps 命令查出 signal是发送给进程的信号, 默认参数下,kill 发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自…

Linux命令之终止进程kill

概述 kill 命令可以用来终止进程&#xff0c;即杀死某些进程。 语法 该命令的语法如下&#xff1a; kill [选项] 进程号该命令支持的选项有&#xff1a; 选项说明 -l <信息编号>若不加<信息编号>选项&#xff0c;则 -l 参数会列出全部的信息名称-a当处理当前进…

killall 、kill 、pkill 命令详解

转载地址&#xff1a;https://www.cnblogs.com/rsky/p/4886043.html killall 命令 Linux系统中的killall命令用于杀死指定名字的进程&#xff08;kill processes by name&#xff09;。我们可以使用kill命令杀死指定进程PID的进程&#xff0c;如果要找到我们需要杀死的进程&am…

kill命令详解kill -9、kill -15区别

kill相当于赐死&#xff0c;kill -9相当于斩立决 kill命令默认的信号就是15&#xff0c;也就是 kill -15 1.从help中可以清晰的看到 -n 指的是 信号编号 2.kill -l(查看Linux/Unix的信号变量) 3.说一下SIGKILL(kill -9)和SIGTERM(kill -15) kill -9 PID 是操作系统从内核级别…