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. js openwindow

    进入许多网站时,有弹出式小窗口,它们五花八门,使我们捉摸不透下面就来介绍用JS制作9种制作弹出小窗口: 1.最基本的弹出窗口代码         其实代码非常简单:         < SCRI ...

  2. 在 SharePoint 2010 打开网页出错时,显示实际的错误信息

    每次打开错误页面时,SharePoint出错显示的都是友好信息“发生意外错误”,而且友好到您基本上无法明白到底出什么错,怎么办? 修改Web.config文件配置就可以了,就可以显示更详细的信息: 1 ...

  3. ORACLE expdp/impdp导出实例

    服务器上以sys或system超级管理员登录. SQL>create directory expdp_dir as '/home/oracle/dmpdata';(dmpdata 需要建立.赋予 ...

  4. 在Delphi中编写res文件

    delphiimagedosinterfaceborland脚本先用记事本编写一个rc的文件. 如内容为: _Comms RCData Comms.jpg Comms.jpg为图片名称, 然后在这个r ...

  5. 类似股软(大智慧)之键盘精灵的 vc2008--UNICODE 环境实现

    键盘精灵是指,当按下键盘上任意一个数字.字母或符号的时候,都会弹出“键盘精灵”,其类似于股票软件(如大智慧)中的.可以在这里面输入中英文和数字搜索您想要的东西.可以通过输入代码.名称或名称的汉语拼音首 ...

  6. mysql中如何在命令行中,执行一个SQL脚本文件?

    需求描述: 在mysql数据库的使用中,有的时候,需要直接在shell的命令行中,执行某个SQL脚本文件, 比如,要初始化数据库,创建特定的存储过程,创建表等操作,这里进行一个基本的测试. 一般情况, ...

  7. kendo-ui的使用和开发自己的组件

    摘要: 前面介绍了一款非常不错的前端框架kendo-ui,如果你想阅读,请点这里.通过使用它一段时间,感觉是非常好用.下面就介绍一下如何使用它和开发自己的组件 引入: 只需要引进下面三个文件即可 ke ...

  8. 【VR】Leap Motion 官网文档 FingerModel (手指模型)

    前言: 感谢关注和支持这个Leap Motion系列翻译的朋友们,非常抱歉因为工作原因非常久没有更新,今后这个翻译还会继续(除非官方直接给出中文文档).本篇献给大家的是 <FingerModel ...

  9. 多线程模块:thread

    thread 常见用法如下: thread.start_new_thread(function, args):用于开启一个新的线程,接收两个参数,分别为函数和该函数的参数,相当于开启一个新的线程来执行 ...

  10. php 关于日期的知识总结

    1.UNIX时间戳   time() echo time(); 2.UNIX时间戳转换为日期用函数: date() 一般形式:date(); 即 echo date(date('Y-m-d H:i:s ...