【手机自动化测试】monkey测试
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 |
|
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测试的更多相关文章
- Android 自动化测试——Monkey测试
Android自带了很多方便的测试工具和方法,包括我们常用的单元测试.Robotium测试.Monkey测试.MonkeyRunner测试.senevent模拟等.这些方法对于我们编写高质量的APP十 ...
- 安卓手机APP压力monkey测试
一.Monkey概述 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行 ...
- Android自动化测试基础知识——MONKEY测试工具(转的)
本周开始启动手机输入法simeiji的自动化测试,同时开始接触手机浏览器自动化测试.接下来会对android自动化测试工具和方法做一个专题研究. 第一篇介绍monkey测试工具. 1 自动化测试背景 ...
- 手机monkey测试BUG重现及解决方法
目录 1.1 Monkey测试简介...1 1.2 Monkey程序介绍...1 1.3 Monkey命令的简单帮助...2 1.4 Monkey命令参数介绍...2 1.5 Monkey测试步骤.. ...
- 学习使用monkey 测试
一.Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动Trackball.按键等操作来对设备上的程序进行压力测试,检测程序多久的时 ...
- android之monkey测试
本文同时发表于本人个人网站 www.yaoxiaowen.com monkey测试算是android自动化测试当中最简单的一种工具了.虽然简单,不过对于测试app的稳定健壮,减少崩溃还是比较有用的.所 ...
- Monkey测试log的保存与分析
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- Monkey测试结果分析
Monkey测试结果分析 什么是monkey Monkey 测试是 Android 自动化测试的手段之一,它通过模拟用户的按键输入.触摸屏输入等,测试设备多长时间出现异常.Monkey 是一个命令行工 ...
- [转]Monkey测试简介
转自:http://www.cnblogs.com/manuosex/p/3215270.html 在android手机上做自动化测试,monkey比cts,Android UnitTest 好用多了 ...
随机推荐
- App 应用通过网页打开 App Store
NSURL *url = nil; if ([[[UIDevice currentDevice] systemVersion] intValue] >= 7.0) { //iOS7 使用旧的网址 ...
- Unity3D Android手机屏幕分辨率问题
Android手机屏幕分辨率五花八门,导致开发时不好把握,还好各个引擎对这个屏幕分辨率问题都有较好的处理方式:unity3D 也为我们提供了一个不错的解决方案. 在Unity3D 进行 android ...
- [转] CSocket 和CAsyncSocket类介绍
微软的MFC把复杂的WinSock API函数封装到类里,这使得编写网络应用程序更容易. CAsyncSocket类逐个封装了WinSock API,为高级网络程序员提供了更加有力而灵活的方法.这个类 ...
- linux中sftp默认登录的端口号是多少? sftp通过指定的端口号连接?sftp默认端口号
需求描述: 今天一个同事,遇到个问题,程序连接sftp服务器连接不上,问我端口号是多少, 我想了一下是21还是22,所以就做了测试,发现sftp默认的连接端口号是22, 在此做下记录. 操作过程: 1 ...
- mysql中什么是逻辑备份
需求描述: mysql中,或者说关系型数据库中逻辑备份到底指的是什么呢,主要还是对于 概念的理解,在此记录下. 概念解释: 逻辑备份:主要指的是保存数据库的逻辑结构(比如:create dattaba ...
- docker学习-docker核心技术
镜像:集装箱 ---build 仓库:超级码头 ----ship 容器:运行程序的地方 ----run docker运行一个程序的过程:去仓库把镜像拉到本地,然后用一条命令把镜像运行起 ...
- 进程防结束之PS_CROSS_THREAD_FLAGS_SYSTEM
有人投到黑防去了,不过黑防不厚道,竟然没给完整的代码,自己整理一份备用吧,驱网.DebugMan.邪八的那群人直接飘过吧. 这种方法的关键在于给线程的ETHREAD.CrossThreadFlags设 ...
- JS中保留小数位数
一.1.2.toFixed(2)
- MYSQL系列之(一)
mysql简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不 ...
- K-mean和k-mean++
(1)k-mean聚类 k-mean聚类比较容易理解就是一个计算距离,找中心点,计算距离,找中心点反复迭代的过程, 给定样本集D={x1,x2,...,xm},k均值算法针对聚类所得簇划分C={C1, ...