1 Monkey测试简介
Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。
2 Monkey程序介绍
- Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;
- Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径 是:/system/bin/monkey;这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。
3 Monkey命令的简单帮助
要获取Monkey命令自带的简单帮助,在CMD中执行命令:
adb shell monkey –help
4 Monkey命令参数介绍
可参考MTK相关文档。
Android_Monkey_Test_SOP.pdf
Monkey_Test_SOP_Customer_MT6572_4.x .pdf
5 Monkey测试步骤
步骤1:下载user版本后手动导入APR工具。
步骤2:导入完毕后重启手机,连接usb线,运行logServerInstall.bat。
步骤3:运行后手机会自动重启,重启完毕后手机端键入*#*#2012#*#*,能够进入对应界面即为apr安装成功。
步骤4:手机连接电脑,开启adb:键入adb shell ps logserver,查询logserver的PID值,然后键入adb shell kill PID(logserver PID)。
步骤5:再次键入adb shell ps logserver 查看logserser已被kill掉。
步骤6:手机连接电脑,开启USB存储,在手机内存(或SD卡)中,新建一个名为whitelist的txt文件,该文件中输入想跑的模块名,每个模块输入后回车输入下一个,若对模块名称不熟悉可参考monkey测试报告,内有模块排练信息。
例如:com.chinamobile.cmccwifi
com.cmcc.mobilevideo
com.hisunflytone.android
步骤7:上一步完成后,手机端进入对应的apk模块,如:whitelist中想跑新浪微薄,uc浏览器的话,手机端分别进入这些应用,把首次使用提示框点掉,记得勾选上永远不提示的选项以免跑monkey无法正常测试。
步骤8:手机连接电脑,打开adb。
步骤9:键入adb shell,回车后键入
monkey --pkg-whitelist-file /mnt/sdcard/whitelist.txt --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 200000 >/mnt/sdcard/Stability_base.txt
步骤10:此时,既能正常开始monkey,并记录开始时间。
步骤11:Monkey结束后手机连接电脑,运行getDataLog.bat,生成 datalog。连接usb存储,在是手机上找到Stability_base.txt文件,查看最后修改时间,该时间即为monkey运行最后结束时间。
6 Monkey测试问题分析及处理技巧
Monkey测试主要是测试负责,研发这边配合测试进行问题复现及给出测试建议,重点工作还是monkey问题分析,包括冻屏、死机重启、crash等。由于这类问题分析起来比较麻烦,所以一般如果没有相关分析经验可以先定位问题,准备好相关的log配合MTK分析或者找部门内部有相关经验的研发人员配合分析。
7 Monkey测试注意事项
注意事项:
- 测试关闭所有网络开关(wifi及数据连接)
- 开启安全设置下的未知来源
- 手机连接电源充电
- 若有有关于音频的模块,请插入耳机避免影响其他同事
- 若测试信息模块时需要安装测试工具testwizard.apk,自动生成通话记录,短信(数量为10)
- 若测试文件管理器需要在T卡内存放有图片/音乐/apk/视频/txt这类文件
- 测试图库是需要T卡内存放100个图片及视频的,同样音乐和视频播放器也需要存放不少于50个片源
- 测试电子邮件的需要新建两个以上的账户
- 测试前运行一遍手机上方带有的首次提示的说明,如输入法,文件夹窗口,apk提示语等
- 若测试时遇到问题想重新开始测试,必须拔掉电板后重新键入adb指令重新开始。
8 Monkey测试命令
- 跑ALL apk命令
monkey --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -s 800 -v -v -v 200000>/mnt/sdcard/Stability_all.txt
- 跑白名单命令
monkey --pkg-whitelist-file /mnt/sdcard/whitelist.txt --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 200000 >/mnt/sdcard/Stability_base.txt
- 跑黑名单命令
monkey --pkg-blacklist-file /mnt/sdcard/blacklist.txt --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 200000 >/mnt/sdcard/Stability_base.txt
9 Monkey测试问题分析
Monkey测试log为标准MTK log,常见问题也是以下几种:Crash 、NE、KE、ANR等。
测试前首先关闭MTK log,将sdcard卡和手机内存中的旧的log清理赶紧,最相关干扰文件一并清理干净,否则后期取出log很容易造成困扰。