赞
踩
Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。 Monkey会发送伪随机的用户事件流(点击、触摸、手势等一些系统级别的事件),适合对app做压力测试,来观察被测应用程序的稳定性和可靠性。
1. 在Android文件系统中的存放路径是:/system/framework/monkey.jar。
2. monkey.jar程序是由一个名为“ monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey。
1. 安装adb, 并加入到环境变量。使用adb与设备进行连接。
获取设备列表及设备状态命令:adb devices
2. 获取安装包
列出android设备上的所有app命令:adb shell pm list package
3. 执行monkey命令测试
adb shell monkey "参数" > monkey.log
示例:
adb shell monkey --pkg-whitelist-file /data/whitelist.txt -s $RANDOM --monitor-native-crashes --ignore-security-exceptions --ignore-crashes --pct-syskeys 0 -v-v-v --throttle 500 2000 >>sdcard/Monkey.log
参数:--pkg-whitelist-file 白名单
只测试白名单中的包名,把你设置的白名单的包名写到一个txt文档里面,记得路径和文档名字都是英文
参数:-s 指定测试的种子值(编号)
用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
Monkey测试1:adb shell monkey -p com.xxx.xxx –s 10 100
Monkey测试2:adb shell monkey -p com.xxx.xxx –s 10 100
说明:两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的,用于回归测试。
参数:--monitor-native-crashes
监视并报告Androids系统本地代码的崩溃事件
参数:--ignore-security-exceptions
用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。
参数:--ignore-crashes
用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
参数:--pct-syskeys
系统事件百分比
参数:-v
用于指定反馈信息级别(信息级别就是日志的详细程度),总共分 3 个级别,以 -v 参数在命令中的个数决定级别, -v 参数个数越多日志就越详细。
参数:--throttle
每个事件结束后的间隔时间。用于降低系统压力。如果不指定,系统会尽快的发送事件序列。
用于指定用户操作(即事件)间的时延,单位是毫秒。
--throttle 500 2000:对xxx发送2000个随机指令,每次间隔时间是500ms
那么对于 monkey 跑完之后,我们要如何去确认有没有出现 bug 呢?
最直观简单的方式就是通过搜索以下关键字:
如果出现空指针 NullPointerException ,就一定是 bug 。 |
1. 程序无响应的情况:搜索关键字 “ANR in” |
2. 崩溃的情况 1 :搜索关键字 “CRASH” |
3. 崩溃的情况 2 :搜索关键字 “Exception” |
4. 内存溢出的情况:搜索关键字 “OOM” |
5. 测试成功的情况:搜索关键字 “Monkey finis hed” |
参考文章:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。