Monkey知识

配置Monkey环境

 

1.下载文件:adt-bundle-windows-x86_64-20131030

2.配置环境变量:新增环境变量Android(环境变量的名字可以随便起)的路径 C:\worktools\monkey\adt-bundle-windows-x86_64-20131030\adt-bundle-windows-x86_64-20131030\sdk\platform-tools

3.在path中加入;%Android%

4.cmd-adb 验证是否成功

5.monkey命令举例

Monkey Test文档

     

1. Monkey测试简介

 

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

2. Monkey程序介绍

 

Monkey程序由Android系统自带,使用java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;

Monkey.jar程序是由一个名为“monkey”的shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;

 

这样可以通过在cmd窗口中执行:adb shell monkey (+命令参数)来进行Monkey测试。

3. Monkey命令的简单帮助

 

 要获取Monkey命令自带的简单帮助,在cmd中执行命令:adb shell monkey –help

 

4. Monkey命令参数介绍

 

1>.参数:-p(后面跟要覆盖测试的报名。可以有多个-p,每个-p后跟一个报名)

参数 –p 用于约束限制,用此参数指定一个或多个包(Package,即App).指定包之后,Monkey将只允许系统启动指定的App。如果不指定包,Monkey将允许系统启动设备中的所有App。

指定一个包:adb shell monkey –p com.app.test 100

说明:com.app.test为包名,100是事件计数(即让Monkey程序模拟100次随机用户时间)

指定多个包:adb shell monkey –p com.app.test –p com.app.tester 100

不指定包:adb shell monkey 100

说明:Monkey随机启动App并发送100个随机事件

查看设备中所有的包,在cmd窗口中执行如下命令:

>adb shell

#cd data/data

#ls

 

 

2>.参数:-v (可以有多个,个数越多,产生的log越详细。最多为三个)

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

日志级别 Level 0

示例:adb shell monkey –p com.app.test –v 100

说明:缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1

示例:adb shell monkey –p com.app.test –v –v 100

说明:提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2

示例:adb shell monkey –p com.app.test –v –v –v 100

说明:最详细的日志,包括了测试中、选中/未选中的Activity信息

3>.参数:-s (后面跟整数,相同的seed值表示产生的随机事件流相同)

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

示例:

 Monkey 测试1:adb shell monkey –p com.app.test –s 10 100

 Monkey 测试2:adb shell monkey –p com.app.test –s 10 100

两次测试的效果是相同的,因为模拟的用户操作序列是一样的

4>.参数:--throttle <毫秒> (后面跟毫秒数,表示每个随机事件中间的事件间隔)

用于指定用户操作(即事件)间的时延,单位是毫秒;

示例:adb shell monkey –p com.app.test –throttle 300 100

5>.参数:--ignore-crashes (发生crash时,不停止monkey执行)

用于指定当应用程序崩溃时(Force&Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

示例:adb shell monkey –p com.app.test –ignore-crashes 100

6>.参数:--ignore-timeouts (发生ANR时,不停止monkey执行)

用于指定当应用程序发生ANR (Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

7>.参数:--ignore-security-exceptions (发生许可错误时,不停止monkey执行)

用于指定当应用程序发生许可错误时,Monkey是否停止运行,如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

8>.参数:--kill-process-after-error (发生错误时,停止monkey执行)

用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态。(系统不会结束该应用程序的进程)

 

 

9>.参数:--monitor-native-crashes

用于指定是否监视并报告应用程序发生崩溃的本地代码

 

四小时Momkey: 

adb shell monkey -p com.app.test -v -v -v --throttle 300 --ignore-crashes --ignore-timecouts --ignore-security-exceptions 14400000 >test.log

 

5. Monkey日志分析(重要)

l Null指针异常:空指针异常主要是有NullPointerException异常提示

l debug异常:出现的是IllegalStateException异常

l 低内存异常:出现的是OutOfMemoryError异常

l 操作无响应异常:TimerOut(KeyDispatchingTimedOut提示)

l RuntimeException异常(操作无响应或应用的服务无法启动或连接)

l StaleDataException/readException异常(android数据库出现异常)

l IllegalArgumentException异常(向函数传递了一个不正确或不合法的参数)

 

关键词:ANR、Exception、Null、Error、crash(Fatal)

 

 

 分析日志,可参考:http://www.douban.com/note/257030241/

 

转载于:https://www.cnblogs.com/minna/p/5269333.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值