Android monkey测试

Android Monkey压力测试介绍
Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。Monkey会发送伪随机的用户事件流,适合对app做压力测试
1.什么是monkey
顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲
通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常

测试准备
Android官网下载android-sdk-windows包,解压至一个目录下,无需安装,如D:\android-sdk-windows;
环境变量配置:Path目录下添加D:\android-sdk-windows\platform-tools;D:\android-sdk-windows\tools(分号隔开,确定platform-tools和tools文件已下载,确认路径正确)
Monkey test前必须先进入android设备的adb shell(Android SDK环境配置不在此描述,网上有很多)步骤如下:
1)开始—>运行—>cmd
2)usb连接手机,输入 adb shell 命令
3)进入手机后,输入相应的monkey命令即可测试
2.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终端模拟器
3.Monkey 架构
monkey架构
四.Monkey参数大全
monkey参数大全
五.Monkey的基本参数介绍
-p <允许的包名列表>

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

指定一个包:adb shell monkey -p com.shjt.map 100

指定多个包:adb shell monkey -p fishjoy.control.menu –p com.shjt.map 100

-v

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分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信息

-s(随机数种子)

用于指定伪随机数生成器的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

–throttle <毫秒>

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

例:adb shell monkey -p com.shjt.map --throttle 3000 100

–pct-touch <百分比>
调整触摸事件的百分比

六.Monkey 实例
用monkey 命令 对上海公交 app进行 性能测试

adb shell monkey –p com.shjt.map –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 1000 >c:\monkey.txt  #最后的1000表示100次事件

手动停止Monkey

adb shell ps monkey
adb shell kill pid (杀掉进程)

七.Monkey日志分析
正常情况, 如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成
异常情况
Monkey 测试出现错误后,一般的分析步骤
看Monkey的日志 (注意第一个swith以及异常信息等)
1)程序无响应的问题: 在日志中搜索 “ANR”
2) 崩溃问题:在日志中搜索 “Exception” (如果出现空指针,NullPointerException) 肯定是有bug
Monkey执行在log最后也能看到当前执行次数

八.必须重视Crash
虽然Monkey测试有部分缺陷,我们无法准确地得知重现步骤, Monkey测试所出现的NullPointException, 都是可以在用户使用时出现的, 何时出现只是时间问题
理论上来说, Monkey所有的Crash 都需要在发布前修复掉

九.脚本模板

monkey -p com.zkgy.pinhn  -v -v -v -s 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error –-pct-appswitch 10 --pct-trackball 0 --pct-touch 40 –-pct-nav 20 --pct-motion 0 --pct-anyevent 20 –-pct-majornav 10 --pct-flip 0 --pct-pinchzoom 0 --throttle 1000 1200000000 > /dev/null 2>&1 &
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值