1             概述

Monkey测试是Android自动化测试的一种手段。Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。

当Monkey程序在模拟器或真实设备运行的时候,程序会产生一定数量或一定时间内的随机模拟用户操作的事件, 如点击,按键,手势等, 以及一些系统级别的事件。通常也称随机测试或者稳定性测试。


2            
测试步骤

2.1   测试前提条件

  • 1.将手机恢复出厂设置
  • 2.恢复出厂设置后,进入设置-->关于手机-->高级设置-->勾选‘保持唤醒状态’
  • 3.在设置->安全中设置解锁图案以及PIN码
  • 4.连接 adb tool
  • 5.手机开启后台log(*#*#3646633#*#*),开启main log,, mobile log和net log
  • 1.使用USB线连接手机和电脑
  • 2.在电脑中输入Monkey命令:adb shell monkey  -p <your.package.name> --throttle 380 -v -s 3500 300000
    > C:\monkey_log.txt

2.2   测试步骤

  • 3.在Monkey结束以后查看它停留的界面并且做一些简单的测试,如拨打电话,发送信息等

2.3   测试结果

  • 在运行Monkey命令时,遇到Crash 或者ANR,就会自动终止,Monkey的测试结果可以通过monkey_log.txt查看,如果测试结果正常,在log最后一行会有monkey finished显示并且手机运行正常
  • 通过monkey_log.txt查看测试结果,在log最后一行显示crashed at event ####of 300000 using seed 3500,如下图:

如果应用程序产生了应用程序不响应(application not
responding)的错误,Monkey将会停止并报错,如果应用程序崩溃或接收到任何失控异常,Monkey也会停止并报错,一般我们执行Monkey时,在3万次以内发生Crash的话就认为Monkey是有问题的,要提交PR。

2.4   提交Monkey的PR

在执行Monkey命令时发生Crash或者ANR时需要提交PR,具体提交Monkey PR的规则如下:

  • 标题:在PR标题中加上[Monkey] 内容:主要要包含自己执行的命令以及在多少次发生crash
  • 内容:主要要包含自己执行的命令以及在多少次发生crash
  • 其它:在PR上要附上相关的Monkey log还有手机后台开启的log,如果有相关的强制关闭的图片也可以贴上。
  • Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。Monkey包括许多选项,它们大致分为四大类:
    • 基本配置选项,如设置尝试的事件数量。
    • 运行约束选项,如设置只对单独的一个包进行测试。
    • 事件类型和频率。
    • 调试选项。


3     
Monkey使用说明

3.1  
命令行说明

以下主要介绍下平时测试中所用到的命令:

  • Monkey命令:adb shell
    monkey  -p <your.package.name> --throttle 380 -v -s 3500 300000
    > C:\monkey_log.txt,这个monkey 命令,当monkey test 过程中遇到Crash 或者ANR,就会自动终止.
  • 其中-p <allowed-package-name> 后面接着的是你所要跑的Monkey的包名,如果用此参数指定了一个或几个包,Monkey将只允许系统启动这些包里的Activity。如果你的应用程序还需要访问其它包里的Activity(如选择取一个联系人),那些包也需要在此同时指定。如果不指定任何包,Monkey将允许系统启动全部包里的Activity。要指定多个包,需要使用多个-p选项,每个-p选项只能用于一个包。
  • --throttle <milliseconds> 在事件之间插入固定延迟。通过这个选项可以减缓Monkey 的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被产成。命令中的380就是延迟时间,单位为毫秒。
  • -v 
    命令行的每一个-v 将增加反馈信息的级别。Level 0( 缺省值) 除启动提示、测试完成和最终结果之外,提供较少信息。Level 1 提供较为详细的测试信息,如逐个发送到Activity 的事件。Level 2 提供更加详细的设置信息,如测试中被选中的或未被选中的 Activity 事件。
  • -s <seed> 
    伪随机数生成器的 seed 值。如果用相同的seed 值再次运行Monkey ,它将生成相同的事件序列。命令中的300000 代表monkey event 执行的次数,3500表示Seed值(影响随机事件的发生顺序)
  • C:\monkey_log.txt 指将Monkey 的log存在PC端的C盘根目录下。
  • 关于Monkey的其它命令,可以通过adb shell monkey来查看:

3.2    被测试程序包名清单

Package
name

com.android.email

com.mobbeel.signature

com.android.spare_parts

com.mobisystems.office_registered

com.google.android.voicesearch

com.tencent.qqpimsecure

com.shazam.android

com.google.android.apps.genie.geniewidget

tunein.player

com.inizz

com.mediatek.StkSelection

cn.com.tiros.android.beforehand.navidog

viva.reader

com.shinycore.picsayfree

com.android.calculator2

com.android.launcher2

com.magmamobile.app.podkast

com.facebook.katana

com.tencent.mtt

com.android.development

com.android.providers.downloads.ui

com.android.soundrecorder

com.mediatek.camera

com.android.calendar

com.sohu.inputmethod.sogou

mobi.infolife.installer

com.mtime

com.google.android.apps.books

com.android.vending

com.sina.weibo

com.twidroidpro

com.ringdroid

com.magmamobile.app.podkast.us

com.bbt.sm.pro

com.android.browser

com.google.android.apps.maps

com.google.android.youtube

com.google.android.talk

com.google.android.gm

com.google.android.googlequicksearchbox

com.taobao.taobao

com.alibaba.mobileim

com.google.android.street

com.layar

com.android.contacts

com.android.settings

com.cooliris.media

com.mediatek.bluetooth

com.mediatek.filemanager

com.mediatek.FMRadio

com.accuweather.android.simpleweatherlite_tcl

com.tencent.qq

com.android.deskclock

com.nimbuzz

com.netease.rpmms

Easy_Installer

Yahoo Mail

com.youku.phone

com.uc.browser

com.yahoo.mobile.client.android.news

也可以通过命令adb shell –>ls–>cd data–>ls来查看包名

【手机自动化测试】monkey测试的更多相关文章

  1. Android 自动化测试——Monkey测试

    Android自带了很多方便的测试工具和方法,包括我们常用的单元测试.Robotium测试.Monkey测试.MonkeyRunner测试.senevent模拟等.这些方法对于我们编写高质量的APP十 ...

  2. 安卓手机APP压力monkey测试

    一.Monkey概述 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行 ...

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

    本周开始启动手机输入法simeiji的自动化测试,同时开始接触手机浏览器自动化测试.接下来会对android自动化测试工具和方法做一个专题研究. 第一篇介绍monkey测试工具. 1 自动化测试背景 ...

  4. 手机monkey测试BUG重现及解决方法

    目录 1.1 Monkey测试简介...1 1.2 Monkey程序介绍...1 1.3 Monkey命令的简单帮助...2 1.4 Monkey命令参数介绍...2 1.5 Monkey测试步骤.. ...

  5. 学习使用monkey 测试

    一.Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动Trackball.按键等操作来对设备上的程序进行压力测试,检测程序多久的时 ...

  6. android之monkey测试

    本文同时发表于本人个人网站 www.yaoxiaowen.com monkey测试算是android自动化测试当中最简单的一种工具了.虽然简单,不过对于测试app的稳定健壮,减少崩溃还是比较有用的.所 ...

  7. Monkey测试log的保存与分析

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  8. Monkey测试结果分析

    Monkey测试结果分析 什么是monkey Monkey 测试是 Android 自动化测试的手段之一,它通过模拟用户的按键输入.触摸屏输入等,测试设备多长时间出现异常.Monkey 是一个命令行工 ...

  9. [转]Monkey测试简介

    转自:http://www.cnblogs.com/manuosex/p/3215270.html 在android手机上做自动化测试,monkey比cts,Android UnitTest 好用多了 ...

随机推荐

  1. Getting SharePoint objects (spweb, splist, splistitem) from url string

    You basically get anything in the object model with one full url: //here is the site for the url usi ...

  2. Vertex and FragmentShader顶点与片段着色器

    一.顶点与片段着色器简介 Vertex and FragmentShader:最强大的Shader类型,也是本系列的重点,下文中简称V&FShader,属于可编程渲染管线.使用的是CG/HLS ...

  3. VS2010属性表的建立与灵活运用

    问题引入:在VS2010当中,进行opencv.QT等的编程时,总是需要配置很多属性还有依赖项等,为了减少每次都重复配置属性的工作量,现在可以运行属性表这个东西来简化配置.opencv也可以这样建立使 ...

  4. 验证码显示不出来,在THINKPHP中的使用

    未开启 php_gd2设置 php的配置文件php.ini,搜索extension=php_gd2.dll,去掉前面的分号即可: 1.在模块类中增加一个 verify 方法来用于显示验证码Public ...

  5. 一这hash算法

    public static long hash(byte[] digest, int nTime)         {             long rv = ((long)(digest[3 + ...

  6. Ext3.4--TreeGridDemo

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CategoryProper ...

  7. Android 中如何从一个App启动另外一个App(如启动支付界面、启动地图界面、应用商场下载App等场景)

    假定两个App,分别是A和B,当A运行某个功能需要启动B,一种是启动B应用,一种直接进入B的某个Activity.搜了很多资料,没有一个完整的.下面就A--Android5.1.1.B--Androi ...

  8. ELK5.X使用X-Pack配置密码

    一.前言 前面使用ELK5.X+logback搭建日志平台,但是,当访问kibana 时,直接就可以访问了,如果设置登录名和密码,是不是更好呢?答案是肯定的,这里使用X-Pack来配置登录名和密码. ...

  9. 基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之LayerColor(8)

    在前面文章中讲述了Cocos2d-x引擎OpenGL渲染准备Shader方面,本文主要讲解使用LayerColor来讲述OpenGL的渲染过程. 1.LayerColor对象创建 添加LayerCol ...

  10. Android 在界面中显示以及输入文本信息 TextView和EditText

    Android控件之TextView和EditTextTextView:显示文本框控件EditText:输入文本框TextView和EditText的常用属性TextView控件的常用属性androi ...