monkey之monkey简介

1.Monkey 是什么

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

Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。Monkey.jar程序是由一个名为“monkey”的shell脚本来启动执行,shell脚本在Android文件系统中的存放路是:/system/bin/monkey;

这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。

打开CMD窗口,输入adb shell ls /system/framework,可以查看到monkey.jar;同理,可查看monkey。

2.Monkey测试的特点

1)测试的对象仅为应用程序包,有一定的局限性。

2)Monkey测试使用的事件流数据流是随机的,不能进行自定义。

3)可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

3.Monkey的基本用法

1)Monkey测试准备

在执行Monkey测试之前,我们需要下载ADB工具,并安装JDK v1.5以上的版本。

ADB工具是谷歌提供的Android调试工具,可以通过linux命令行访问手机。

安装好JDK环境,下载adbtools之后,我们需要配置一下环境变量,把adbtools的存放路径添加到path中,我们可以开始进行Monkey测试。

注:需要root权限。

2)基本语法如下:

$ adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示。

$adb install
adb install <apk文件路径> :这个命令将指定的apk文件安装到设备上
adb install  -r <apk文件路径> :如果加-r参数会覆盖原来安装的软件并保留数据
注意:apk文件名不要使用中文且不要有空格号

$ adb shell monkey [options]

如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500 个伪随机事件:

$ adb shell monkey -p your.package.name -v 500

4.monkey测试的相关的原理

monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。当Monkey程序在模拟器或设备运行的时候,如果用户触发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件。

5.monkey实例

1)启动Android模拟器

2)在命令行中输入:adb devices查看设备连接情况

3)在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面

4)查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面

5)以com.tencent.mobileqq为对象,进行monkey test

monkey -p com.tencent.mobileqq -v 500

6)另一种执行方法

adb shell monkey -p com.tencent.mobileqq -v 500>E:\monkey\test.log

6.Monkey测试的停止条件

Monkey Test执行过程中在下列三种情况下会自动停止:

1)如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

2)如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

3)如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序。

 

工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下:

adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey\log.txt

Monkey测试是Android自动化测试里面使用比较简单的方法,可以很大程度检验我们的程序是否稳定,能否经得起压力测试,可以根据实际情况调整测试的强度和测试重点。

Monkey测试只是一个模拟测试,很多时候跟实际情况时有差别的,所以这个只能是其中一个辅助测试。

时间: 2024-08-04 20:45:51

monkey之monkey简介的相关文章

Monkey Patch/Monkey Testing/Duck Typing/Duck Test

Monkey Patch Monkey Testing Duck Typing Duck Test

monkey之monkey命令详解

四大类-- 常用选项.事件选项.约束选项.调试选项 1.常用选项 --help:打印帮助信息 -v:指定打印信息的详细级别,一个-v增加一个级别 ,默认级别为 0 .用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别. 日志级别 Level 0 缺省值,仅提供启动提示.测试完成和最终结果等少量信息 日志级别 Level 1 提供较为详细的日志,包括每个发送到Activity的事件信息 日志级别 Level 2 最详细的日志,包括了测试中选中/未选中的Activity信息 2.事件

monkey之monkey日志分析

一.初步分析方法:Monkey测试出现错误后,一般的差错步骤为以下几步:1.找到是monkey里面的哪个地方出错2.查看Monkey里面出错前的一些事件动作,并手动执行该动作3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样一般的测试结果分析:1.ANR问题:在日志中搜索"ANR"2.崩溃问题:在日志中搜索"Exception"二.详细分析monkey日志:首先我们需要查看Monkey测试中是否出现了ANR或者异常,具体方法

玩转Android monkey之monkey是啥?monkey=猴子?

引子 从本次开始小编将带你学习Android monkey的用法,我们仍然保持尽可能简洁明了的告诉大家.也欢迎大家有好文章投稿给我们,有红包奖励哦.投稿邮箱:[email protected],备注投稿 monkey是啥?monkey=猴子? monkey是一个命令,是发送伪随机用户事件的.这里特别要说明,既然是随机事件也就是说你没法控制ta点击哪里.如果你想控制那就去修改源码. monkey需要安装(好多人问这个问题)?其实都带着呢....只需要通过adb就可以和手机进行交互了 adb又是啥?

玩转Android monkey之monkey小实战

环境介绍 l 模拟器里安装手机百度APP l 本机通过monkey命令进行随机测试 l 所有的命令均在cmd命令模式下输入 执行过程 语法:adb shell monkey -p 包名 随机事件次数,如下图 PS:每个人的环境不一样,结果可能会略微有差异 如何查看包名在<手机APP测试系列视频>中讲过(http://edu.51cto.com/topic/498.html),此处不再重复

Android APP压力测试(一)之Monkey工具介绍

Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动.按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常.此文主要给自己查阅用. [目录] 1.Monkey简介 2.Monkey参数说明 3.Monkey实例 4.Monkey测试结果分析 1.Monkey简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设

Android Monkey自动化测试

前言 如果你做Android开发,还没有使用过Monkey进行测试,那么今天看到这篇文章,希望能解决你Android测试中的一些问题.起码能帮你省点测试的时间并且发现更多的问题. Monkey简介 Monkey是一个可运行在模拟器和实际设备中的Android命令行自动化测试工具,它可以模拟伪随机的用户事件流,例如点击.触摸.手势等.你可以使用Monkey对正在开发的程序进行压力测试. Monkey的特征: 测试的对象为程序包名,通过-p参数指定. Monkey测试使用的事件流.数据流是随机的,不

adb Monkey用法

以这条Monkey指令为例: #monkey -s 12 --throttle 450 -p com.android.cameraswitch --kill-process-after-error --ignore-timeouts --ignore-security-exceptions -v 10000 这条monkey指令是测试:在camera模块中产生1万次伪随机操作(包括触摸.按键.手势等). 下面简单介绍下涉及到的各参数: -s : 伪随机数生成器的 seed 值.如果用相同的 se

学习使用monkey 测试

一.Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动Trackball.按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常. 二.Monkey程序介绍1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar:2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,she