monkey命令_Monkey测试和分析

Monkey命令配置

  • 针对9130的配置特点,Monkey命令的配置有如下要求:
  • 无键盘:无键盘按键事件
  • 无轨迹球:无轨迹球按键事件
  • 无物理导航键:无基本导航事件
  • 大部分事件为Touch和Motion
  • 事件间隔发送时间1000
  • 出现各种异常(崩溃异常、超时异常、安全异常)时Monkey继续运行

Monkey整机测试配置命令如下:

adb shell monkey --throttle 1000 -s 12345678 --pct-anyevent 0 --pct-trackball 0 --pct-nav 0 --pct-majornav 2 --pct-appswitch 2 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes –v –v 100000 > Monkey_log.txt

参数说明: --throttle 1000 Monkey发送事件的时间间隔

-s 12345678 Monkey发送事件的序列

--pct-anyevent 0 按键、不常用的设备按键事件百分比设为0

--pct-trackball 0 轨迹球事件百分设比为0

--pct-nav 0 基本导航(up、down、left、right)事件百分比设为0

--pct-majornav 2 主要导航(中间按键、回退按键、菜单)事件百分比设为2

(9130用了Menu键,所以不能设为0, 但又不能没有此事件)

--pct-appswitch 2 Monkey调用startActivity()方法的百分比设为2

--ignore-crashes 忽略崩溃异常

--ignore-timeouts 忽略超时异常

--ignore-security-exceptions 忽略安全异常

-v –v Monkey日志显示的详细级别 (有按键类型)

Count=10000 Monkey 发送事件的次数(根据情况设定)

单个或多个应用测试:需要在monkey 后加上应用程序的package名。–p 指定。其它命令查看可用adb shell monkey来查看详细参数。

Monkey测试结果分析

Monkey测试结果在两个文件中:

Monkey工具产生的输出(如Monkey_Log.txt)

adb logcat 产生的日志信息(如Logcat_Log.txt)

Monkey工具测试时会记录应用程序的两种非正常状态:Crash和Not Responding。下面将分别说明。

Crash

当应用程序在出现了Crash时,在Monkey_Log.txt文件中会有相应关键字CRASH产生。在CRASH中常见的异常为:

  • java.lang.IllegalArgumentException
  • java.lang.RuntimeException
  • java.lang.NullPointerException
  • java.lang.IndexOutOfBoundsException
  • java.lang.NumberFormatException
  • java.lang.SecurityException
  • java.lang.OutOfMemoryError
  • java.lang.IllegalStateException
  • android.database.CursorIndexOutOfBoundsException
  • android.database.sqlite.SQLiteException
  • android.content.ActivityNotFoundException

我们只需要在Monkey_Log.txt文件中搜索关键字CRASH,就可以找到程序产生Crash的点。从该信息中,可以看出产生异常的应用、异常类型、Stack等信息。如下图:

808a7f6b8dde8fde84dd56908d0f41c4.png

将上图信息中的关键字符(异常状态):java.lang.IllegalStateException作为文件Logcat_Log.txt的搜索关键字,即可找到logcat日志里的上下文Crash异常信息。如下图:

4d0979b328cf456883aedbc2660cf2bd.png

Not Responding

当应用程序在出现了Not Responding时,在Monkey_Log.txt文件中会有相应关键字NOT RESPONDING产生,我们只需要在Monkey_Log.txt文件中搜索此关键字。即可找到程序产生Not Responding的点,从该信息中可以看出产生Not Responding的应用,和产生时各应用内存的使用情况等,如下图:

7597febd8a0d1703c277b857a6c6ef1b.png

在此信息中有关键字符:ANR in processkeyDispatchingTimeout,在文件Logcat_Log.txt搜索这两个关键字就可以找到logcat日志中的Not Responding详细信息。如下图:

45afb53d42dede335134a59c1f6f183f.png

此信息还告诉我们:在data/anr/目录下产生了traces.txt文件。可分析此时各进程的内存情况。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值