NautyMonkey是一款Android稳定性测试工具,基于控件的随机点击,以随身版APP的方式提供服务,欢迎使用。
NautyMonkey安装包请联系鲁可luke01,后面打算接入移动构建中心,童鞋们可以到移动构建中心下载。
运行NautyMonkey随身版需要一些基本条件:手机必须root,连接wifi、android5.0以上
对测试apk的要求:没有要求,NautyMonkey对app零入侵,debug release包都可以,release包混淆过,只是看Crash堆栈时不方便而已,推荐用debug包
进入主界面时NautyMonkey会自动请求root权限,如果是第一次安装,需要在授权管理软件(比如supersu、superuser)里通过NautyMonkey的root请求,
如果您是小米MIUI开发版的系统,需要安全中心->授权管理里去手动通过NautyMonkey的root权限
另外有些可选择配置项,请参考NautyMonkey手机配置文档:
http://ks.netease.com/blog?id=9097
初始界面:
游客:
不具提单能力,可以选手机里随意一款app进行monkey测试,适合场景:体验;需要自己验证某个场景;发现Crash,但日志需手动处理
网易用户(功能开发中):版本等信息可配置、jira自动提单
下面以游客模式来进行说明
点击游客后,进入选择被测app界面:
下拉列表中会显示手机里已安装的、非系统的app,可以任选一款app进行测试,比如这里选择“网易云音乐”
黑名单功能还在开发中,不用理会
点击“保存设置”
点击右上角的加号图标
“遍历算法选择”这一项,点击后会弹出
加权算法:模拟用户行为点击控件,通过权值动态计算点击相对重要的控件。
覆盖算法:从覆盖率的角度,点击尽可能多的控件。
默认是加权算法
回到主界面,点击“Monkey一下”,如果手机环境配置OK且是monkey内核兼容的机型,等待大约几秒后,就能将被测APP调起来进行随机测试。在权限管理中,允许NautyMonkey的悬浮窗权限,测试过程中能清晰看到一个小手在点击,效果更赞哦。
如果测试过程中需要暂停测试,摇一摇手机暂停,摇一摇弹窗:
点击停止,会彻底停掉monkey测试,
点击启动,会从上次暂停的地方接着测试。
如果您不想立马停止或启动,而是想操作一下app,再接着跑,这里可以选择“保留暂停状态”
NautyMonkey随身版提供两个下拉通知栏,一个用实时更新Monkey测试过程点击的控件数,另一个用于观察monkey的运行状态,可以在暂停过程中,再次续接启动monkey或彻底停止monkey。如下图所示,由于主界面刚启动,所以都是未初始化状态
如果暂停过程中,您想续接暂停的地方接着测试,
点击上图中NautyMonkey第二个通知栏,会跳出摇一摇暂停时弹窗
第一个通知栏会提供NautyMonkey已点击控件数,activity控件覆盖率信息
被测app发生Crash后,NautyMonkey随身版会将日志写在/sdcard/netease/NautyMonkey/测试app包名的目录下
日志文件列表如下:
日志文件的前缀是启动测试时间,数字相同,说明都是同一次测试
后缀说明
crashbrief.txt Crash的简要信息:Crash堆栈、被测app、测试机型、运行时长,启动时间,Crash前5个activity等
bug.json crashbrief.txt的json格式
monkeylog.txt NautyMonkey内核点击过程中的activity 控件 坐标信息
logcat.txt 系统全部logcat日志,日志过大,app会做截断
activitycover.txt 本次测试中覆盖到的activity列表
activityNotCover.txt 本次测试中未覆盖到的activity列表
allactivity.txt app中所有activity列表
排查NautyMonkey单的过程:
优先看crashbrief.txt文件
如果信息不够,再配合monkeylog.txt logcat.txt排查
如果是ANR,NautyMonkey还会将系统文件/data/anr/traces.txt提取出来以帮助定位问题
如果是NativeCrash,NautyMonkey还会将系统目录/data/tombstones下的tombstone文件提取出来以帮助定位问题
童鞋们若用NautyMonkey发现Crash,记得提单哦,方便Crash跟踪
本文来自网易实践者社区,经作者鲁可授权发布。