【Android测试】【第二节】Monkey工具

最近开始研究Android测试的Monkey工具,因接触时间很短,还有很多不足之处,希望能和大家多多交流。

什么是Monkey

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随

机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。

Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

● Monkey用来做什么

Monkey 主要用于Android 的压力测试自动的一个压力测试小工具,主要目的就是为了测试app 是否会Crash.

● Monkey程序介绍

(1) Monkey程序由Android系统自带,使用Java诧言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;   
   (2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;  
   (3)Monkey 命令启动方式:    
      a.可以通过PC机CMD窗口中执行: adb shell monkey{+命令参数}来进行Monkey测试

b.在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数}来进行Monkey测试         c.在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器

● Monkey的架构

    Monkey 运行在设备或模拟器上面,可以脱离PC运行(普遍做法是将monkey作为一个像待测应用发送 随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)

Monkey参数大全

Monkey 命令、基本参数介绍


- p <允许的包名列表>

用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果不指定

包,monkey将允许系统启动设备中的所有app。

指定一个包:adb shell monkey -p com.shjt.map 100

指定多个包:adb shell monkey -p fishjoy.control.menu  –p com.shjt.map  100

- v

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

Level 0 :adb shell monkey -p com.shjt.map -v 100      // 缺省值,仅提供启动提示、测

试完成和最终结果等少量信息

Level 1 :adb shell monkey -p com.shjt.map -v  -v 100  // 提供较为详细的日志,包括每

个发送到Activity的事件信息

Level 2 :adb shell monkey -p com.shjt.map -v -v -v 100 // 最详细的日志,包括了测试中选中/

未选中的Activity信息

- s(随机数种子)

用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。示例:

monkey测试1:adb shell monkey -p com.shjt.map –s 10 100

monkey测试2:adb shell monkey -p com.shjt.map –s 10 100

--throttle <毫秒>

用于指定用户操作(即事件)间的时延,单位是毫秒;如果丌指定这个参数,monkey会尽可能快的 生成和发送消息。

示例:adb shell monkey -p com.shjt.map --throttle 3000 100


Monkey查看包名

1)手机中安装APK包名查看器

2)源码下的AndroidManifest.xml文件查看

3)aapt命令查看

● Monkey日志分析

正常情况,如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成\

异常情况

Monkey 测试出现错误后,一般的分析步骤

看Monkey的日志 (注意第一个swith以及异常信息等)
 1. 程序无响应的问题: 在日志中搜索 “ANR”
 2. 崩溃问题:在日志中搜索 “Exception” (如果出现空指针 NullPointerException)肯定是有bug

Monkey 执行中断,在log最后也能看到当前执行次数


时间: 2024-08-10 17:09:40

【Android测试】【第二节】Monkey工具的相关文章

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

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

Android 测试入门之---Monkey test

Android 测试入门之---Monkey test [日期:2010-11-08] 来源:Linux社区  作者:静心 [字体:大 中 小] 这周重点学习的也是Android monkey test 的一些相关知识,也对其进行了初步的操作和试验.讲学习资料整理如下 : Monkey是一个命令行工具 ,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试.Monkey包括许多选项,它们大致分为四大类: · 基本配置 选项,如设置尝试的事件数量.

Android自动化压力测试图解教程——Monkey工具

转自:http://blog.csdn.net/lfyx1357/article/details/7418133 有时候我们需要对一个软件进行压力测试,检查该软件的性能.如果是人工进行测试的话,效率会低很多,而且会比较枯燥.这时,Android中的一个命令行工具Monkey就可以为我们减轻很多重复而又繁琐的工作. 一.Monkey简介 至于Monkey的名字是有何而来的呢?这个没有去怎么考究,Monkey这个工具就是一个调皮的猴子,在App中乱按.乱摸.乱滚.乱跳.Monkey测试是Androi

Android APP压力测试(三)之Monkey日志自动分析脚本

Android APP压力测试(三) 之Monkey日志自动分析脚本 前言 上次说要分享Monkey日志的分析脚本,这次贴出来分享一下,废话不多说,请看正文. [目录] 1.Monkey日志分析脚本 2.脚本原理 3.操作实例 1.Monkey日志分析脚本 1).脚本文件:Monkey_Log分析.bat @ECHO OFF ECHO.::::::::::::::::::::::::::::::::::::::::::::::::: ECHO.::             分析Monkey日志 

Android 开源项目android-open-project开发工具及测试工具解析 开发效率工具,开发自测相关,测试工具,开发及编译环境,其他

主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Parceler 通过注解及工具类自动完成实体类 Parcelable及值传递 项目地址:https://github.com/johncarl81/parceler Json2Java 根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson Annotations对应代码自动生成.期待后续的提取父类以及多url构建整个工程的功能 项目地址:https://github.com/jonfhancoc

android 测试(转)

个人接触android的时间也不是很长,稍微总结下在做Android测试的过程中,初次接触的同学需要些什么准备,以及需要些什么知识?下面讲到的东西可能很多人会觉得很简单,但我确实碰到过有新同学对这些点不知晓. 很大部分同学最常用的应该是windows系统,包括我自己.那么对于测试,windows里面有些基础的东西,还是需要懂的. 1.任务管理器,有遇见过任务管理器中进程PID未勾选的同学.请进入查看>选择列,勾选PID: 为何要勾选PID?Android最常见的,就是5037端口被占用,adb起

Android自动化测试基础知识——MONKEY测试工具(转的)

本周开始启动手机输入法simeiji的自动化测试,同时开始接触手机浏览器自动化测试.接下来会对android自动化测试工具和方法做一个专题研究. 第一篇介绍monkey测试工具. 1 自动化测试背景 软件测试是软件产品开发过程中的重要环节.测试对于发现软件中缺陷,保障软件的质量具有重要意义.统计表明,软件测试的时间通常占到软件开发时间的 40%,一些可靠性要求高的软件甚至高达 60%以上.         手工测试和自动化测试是软件测试的两种基本手段,二者相互补充,不可相互替代.其中,自动化测试

Android 测试 Appium、Robotium、monkey等框架或者工具对比

1. Appium测试 (功能测试,用户接受度测试,黑盒测试) - Rating: 8 Website: http://appium.io/ Appium测试相当于黑盒测试.只是测试UI逻辑正确性.所以Appium测试框架提供的方法有限.获取一个AppiumDriver对象.该对象只是有很多findElements()的方法,获取到UI元素.UI元素是WebElement,这个类提供的方法基本是获取信息为主,比如获取name,class,tagName,location,text,isSlect

转:Android 测试 Appium、Robotium、monkey等框架或者工具对比

原文地址:http://demo.netfoucs.com/u012565107/article/details/36419297# 1. Appium测试 (功能测试,用户接受度测试,黑盒测试) - Rating: 8 Website: http://appium.io/ Appium测试相当于黑盒测试.只是测试UI逻辑正确性.所以Appium测试框架提供的方法有限.获取一个AppiumDriver对象.该对象只是有很多findElements()的方法,获取到UI元素.UI元素是WebEle