Monkey测试和基本命令介绍

1. Monkey测试

1.1. 参考资料

http://blog.csdn.net/jlminghui/article/details/38238443

1.2. Money介绍

顾名思义,Monkey就是猴子,  Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。  猴子什么都不懂, 只知道乱敲

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

1.3. Monkey用来做什么

Monkey 主要用于Android 的压力测试  自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash崩溃.

1.4. Monkey程序介绍

1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;   
2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;  
3)Monkey 命令启动方式:    
          a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试          

  b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试          

  c )  在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器  

2. Monkey 命令 基本参数介绍

2.1. 使用monkey测试手机所有程序

adb shell monkey 100 执行monkey测试100次

 

使用adb指令,安装Login.apk

 

2.2. 查看手机上应用包名  adb shell pm list packages

 

2.3. -p <允许的包名列表>       

用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果指定包, monkey将允许系统启动设备中的所有app。  

指定一个包:

 

2.4. 显示日志详细程度

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

Level 0  :  adb shell monkey -p com.shjt.map -v 100  // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息   

Level 1  :  adb shell monkey -p com.shjt.map -v  -v 100          // 提供较为详细的日志,包括每个发送到Activity的事件信息

Level 2  :  adb shell monkey -p com.shjt.map -v  -v  -v 100     // 最详细的日志,包括了测试中选中/未选中的Activity信息

2.5. Monkey日志分析

log信息写到文档中

adb shell monkey 100 >c:/log/b.txt

 

正常情况,  如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成

随机数种子

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

monkey测试1:adb shell monkey -p com.shjt.map –s 10 100                

monkey测试2:adb shell monkey -p com.shjt.map –s 10 100  

 

2.6. --throttle <毫秒>            

指定用户操作(即事件)间的时延,单位是毫秒;如果指定这个参数,monkey会尽可能快的 生成和发送消息。 示

例:adb shell monkey -p com.example.login --throttle 3000 100   

 

2.7. --pct-touch <percent>

调整触摸事件的百分比。(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作)

adb shell monkey --pct-touch 100 -v 10

2.8. --pct-motion <percent>

调整motion事件百分比。(motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成)

adb shell monkey --pct-motion 100 -v 10

2.9. --ignore-crashes

作用:通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

正常操作,不忽略异常

 

忽略异常

2.10. --ignore-timeouts

作用:通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

同上

2.11. Monkey 实例

monkey 命令 对登录apk进行 性能测试

 

adb shell monkey -p com.example.login --ignore-crashes --ignore-timeouts --throttle 100 --pct-touch 50 --pct-motion 50 -v -v 1000 >c:\login\c.txt
View Code

 

2.12. Monkey异常分析

Monkey 测试出现错误后,一般的分析步骤
Monkey的日志 (注意第一个swith以及异常信息等)
1. 程序无响应的问题: 在日志中搜索 “ANR”
2. 崩溃问题:在日志中搜索 “Exception”   (如果出现空指针, NullPointerException)  肯定是有bug
Monkey 执行中断, 在log最后也能看到当前执行次数

posted @ 2020-04-02 17:12  嗨林子  阅读(207)  评论(0编辑  收藏  举报