最近开始复习以前的测试工具,顺便就写一遍monkey的,方便自己记忆,各位大佬请轻拍。
这次monkey主要是在夜神模拟器的基础上用的,把需要用到的apk传到模拟器上,然后再模拟操作。
首先,还是概念性的介绍。
MONKEY测试:
顾名思义,Monkey就是猴子。Monkey测试,就像一只猴子,在电脑面前,乱敲键盘在测试。猴子什么都不懂, 只知道乱敲。
是android平台自动化测试的一种手段,通过MONKEY程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久时间会发生异常。
MONKEY是命令行工具。
弱点:Monkey虽然可以根据一个指定的命令脚本发送按键信息,但不支持条件判断,也不支持读取待测界面的值来执行验证操作。
运行环境:基于搭建的adt(安卓测试开发环境)。
用途:既可以做压力测试,也可以自动化测试。
使用时间:等产品稳定后,没有特别多的bug时,从而测试待测应用的稳定性、健壮性(是否发生闪退、崩溃)。
然后,就是实际操作了。
具体开启:
1、启动安卓模拟器/真机
2、点击启动——输入cmd———进入命令行界面
3、查看设备连接情况 adb devices
4、在命令行界面输入monkey命令
————如果monkey需要执行指定设备,即:
$ adb -s [device] shell monkey [options]
5、查找monkey进程号
adb shell ps | find "monkey"
6、杀死monkey进程
adb shell kill 【pid】
ps一下,对于不知道包名,我经常使用的命令是:adb shell dumpsys activity | find "mFocusedActivity",
这个命令使用的前提是你先打开模拟器上正在使用的app。
还有一种,就是要靠自己的慧眼识金了:adb shell ——进入shell模式
cd data/data
ls ——自己慢慢查看吧
附上一些常见参数的讲解:
常见参数:
-p 用于约束限制,用此参数指定一个或多个包(packet,即app名字)。
monkey将只允许系统启动指定的app。如果不指定包,monkey将允许系统启动设备中所有的app。
-v 用于指定反馈信息级别(信息级别即日至的详细程度),共三个级别。
-v Level0
仅提供启动提示、测试完成和最终结果等少量信息
-v -v Level1
提供较详细的日志,包括每个发送到activity的事件信息
-v -v -v Level2
最详细的日志,包括测试中选中/未选中的activity信息
--throttle<毫秒>用于指定用户操作(即事件间的)延时,单位毫秒(每一个动作都延迟规定的毫秒数哦,一不小心设太多,会等的很无聊的)
例:adb shell monkey -p com.tencent.mobileqq --throttle 3000 100
--randomize--throttle 在事件之间插入随机延迟,随机延迟范围为0到throttle设置的时间,单位为毫秒
列:adb shell monkey -p com.tencent.nobileqq --throttle 5000 --randomize--throttle 100
-s 用于指定伪随机数生成器的seed值。如果seed值相同,则两次monkey测试所产生的时间序列是相同。(是指本次连接的情况下)
例:adb shell monkey -p com.tencent.nobileqq -s101 100
adb shell monkey -p com.tencent.nobileqq -s 101 100
注:以上几个参数是可以同时使用的
--pkg--whitelist--file 白名单,后面接txt
例:adb push D:\whitelist.txt data/local/tmp
adb shell monkey --pkg--whitelist--file data/local/tmp/whitelist.txt 100
--pkg--blacklist--file 黑名单,后面接txt
例:adb push D:\blacklist.txt data/local/tmp
adb shell monkey --pkg--blacklist--file data/local/tmp/blacklist.txt 100
注:黑白名单不能同时使用,每次只能用一个
adb shell monkey {限制命令参数} {时间名字} {百分比} {事件总数}
例:adb shell monkey -p com.tencent.mobileqq --pct-touch 20 --pct-filp 25 200
adb shell monkey -p com.tencent.mobileqq --pct-touch 10 --pct-rotation 40 -v -v -v 100
他人参考:
http://www.cnblogs.com/TankXiao/p/4815134.html#setup
http://blog.csdn.net/true100/article/details/52814520