monkey测试方法总结测试策略:全模块、单模块测试步骤:1、测试前准备:1.PC侧安装adb驱动,使用adb shell命令不报错2.手机设置:锁屏方式设置为无,屏幕亮度建议设成最低(防止电量消耗过大导致关机)3.手机为刚刷的新版本或者进行一次恢复出厂设置备注:或测试前请先删除自行安装的第三方:手机助手、测试工具apk等等4.休眠设成最长时间或不休眠5.设置-开发者选项中勾选不锁定屏幕6.设置手机时间为当前正确时间7.若要测试上网请连接可用wifi或打开数据业务8.测试前需开启aplog*#*#201206#*#*备注:测试前请确保日志功能开启,测试完成后先保存日志adb rootadb remountadb shell rm -rf /data/logs/*作用就是删除以前的旧log工具使用前请确定手机版本为debug版本,PC 的adb命令使用正常附件解压到任意目录,双击InstalllogClient.bat会自动安装logClient客户端并重启手机配置:1. 连接热点360WiFi-6CDC31,连接密码为xdjatest2. 输入密码后勾选下面的高级选项-》将DHCP选项改为静态-》设置IP地址为11.12.112.196至199之间的IP,设置完IP直接点击连接,连接上热点后即配置完毕2、测试执行:先执行命令adb shell再输入如下的命令:全模块:monkey--throttle500--ignore-crashes--ignore-timeouts--ignore-security-exc eptions--ignore-native-crashes--monitor-native-crashes-v-v-v180000>/st orage/sdcard0/monkey_log.txt&单模块:monkey-p.xdja.ncser--throttle500--ignore-crashes--ignore-timeouts--ign ore-security-exceptions--ignore-native-crashes--monitor-native-crashes-v-v-v180000>/storage/sdcard0/monkey_log.txt&备注:1、单模块命令加:-p模块包名;2、测试9小时使用180000,测试18小时使用3750003、测试开始后将手机从PC上拔出并连接充电器继续进行测试,测试完成后手机会自动停止操作4、事件数量180000基本9小时,跑时间太久日志会被冲掉,因此建议每天跑2次3、日志导出:分别将手机中的aplog、monkey运行日志、trace导出到PC侧1、Aplog:可以使用MTP方式直接将手机侧logs文件夹拷贝到PC侧2、Monkey运行日志:adb pull/storage/sdcard0/monkey_log.txt e:\monkey_log.txt备注:前面的路径为手机侧存储monkey运行日志的路径和文件名,后者为PC 侧的存储路径3、anr获取trace:adb pull/data/anr目标目录;比如:adb pull /data/anr d:/,就会在d盘;备注:当ANR发生的时候,系统会将ANR信息写入到手机的data/anr/这个文件夹,若报anr问题,请使用adb pull命令将这个文件夹导出4、BUG提交:描述:【主题】:Monkey测试音乐模块出现1次crash【预制条件】:1.测试机电量充足2.测试前恢复出厂设置【操作步骤】:Monkey测试命令adb shellmonkey --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 180000 > /storage/sdcard0/monkey_log.txt &【实际结果】:Aplog目录例如:All2015-09-21-18-53-18-0600\logs\crashlog1\system_app_crash56.txtAplog实际报错信息例如:ng.IllegalStateException: Can not perform this action after onSaveInstanceStateat android.support.v4.app.y.c(Unknown Source)at android.support.v4.app.y.enqueueAction(Unknown Source)at mitInternal(Unknown Source)at mit(Unknown Source)at .cyanogenmod.eleven.ui.activities.i.run(Unknown Source)at android.os.Handler.handleCallback(Handler.java:739)at android.os.Handler.dispatchMessage(Handler.java:95)at android.os.Looper.loop(Looper.java:135)at android.app.ActivityThread.main(ActivityThread.java:5221)at ng.reflect.Method.invoke(Native Method)at ng.reflect.Method.invoke(Method.java:372)at .android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)at .android.internal.os.ZygoteInit.main(ZygoteInit.java:693)at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:116)【期望结果】:测试无问题【出现概率】:1【对比机现象】:无【LOG地址】:\\11.12.111.153\public\\软件测试\测试LOG\ROM快速定制LOG\ ROMDZ-1673【备注】:R19【联系人】:侯璐Log:aplog、monkey运行日志、trace提交至服务器:\\11.12.111.153\public\\软件测试\测试LOG\ROM快速定制LOG\备注:aplog需附上全部的log日志,方便研发分析其他:1、查看当前在运行的包名:手机连接PC端,打开模块,运行命令如下:adb shell dumpsys window |findstr mFocusedWindowu0和/之间的部分为包名2、参数说明命令:monkey-p.android.contacts--throttle500--ignore-crashes--ignore-timeouts--ignore-s ecurity-exceptions--ignore-native-crashes--monitor-native-crashes-v-v-v180000>/s torage/sdcard0/monkey_log.txt&参数:--throttle:每个事件结束后的间隔时间(单位毫秒)(如不指定,系统会尽快的发送事件序列)。
如:–throttle 1000间隔1S-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package,如:-p .ckt -p .ckt.asura--ignore-crashes:忽略崩溃--ignore-timeouts:忽略超时--ignore-security-exceptions:忽略安全异常--ignore-native-crashes:忽略本地代码导致的崩溃异常--monitor-native-crashes:跟踪本地方法的崩溃问题-v:指定打印信息的详细级别,一个-v增加一个级别,默认级别为0后面跟的数字180000即为事件数量,数字越大,测试压力越大3、手动停止monkey测试命令1.adb shell2.ps|grep monkey 查看monkey进程ID号,是一串数字3.kill进程ID号停止monkey测试4、日志分析:1.CRASH (崩溃)anr in(应用无响应)aplog日志中有crash文件夹,可查看报错信息2.FATAL(严重错误)aplog日志中搜索关键字3.tombstone(底层报错):aplog中有tombstone文件夹,可查看报错信息,一般与CRASH并存。
5、报错即停测试命令:monkey -p .android.contacts --throttle 500 -v -v -v 180000 >/storage/sdcard0/monkey_log.txt &monkey --throttle 500 -v -v -v 180000 > /storage/sdcard0/monkey_log.txt &。