一、介绍
1、功能:采用伪随机测试的方式,来完成app的稳定性
2、执行原理:通过monkey的shell脚步去执行安卓系统中自带的monkey。jar工具
3、通常用于盲测,压力测试和冒烟测试
(1)盲测:忽略功能和业务逻辑进行随意的测试
(2)压力测试:通过长时间的高频操作,测试app在测试机上运行的性能(仅仅靠这个还不够)
(3)冒烟测试:在进行功能测试之前,通过monkey测试app的基本可用性
4、局限性:无法遵循功能逻辑进行自动化测试
二、adb介绍和环境搭建
1、安装adb,用pc在手机上调用monkey的shell脚步,去执行monkey.jar
2、adb是C/S架构的命令行工具
3、环境搭建
adb版本查看:adb version
三、monkey命令介绍:
1、命令执行方式:adb shell monkey
2、常用属性:
(1)-p 选择包名(--pkg-whitelist-file白名单)
(2)-v指定日志级别,一般用-v -v -v指定3级的详细日志
(3)-s随机事件的种子数,种子数相同则生成相同的随机操作序列
(4)--throttle 操作的延时
(5)count 执行次数(该参数必须带上)
3、获取app包名的命令:adb shell pm list package -3(-3代表第三方应用)
4、指定某app进行测试:
(1)该app包名为:com.timeweekly.timefinance
(2)输入命令:adb shell monkey -p com.timeweekly.timefinance -v -v -v --throttle 300 500>E:MonkeyLog imeweekly.txt
四、日志分析
1、正常结束后,日志结尾一般能看到//Monkey finished;但是系统崩溃后,不一定能看到
2、app无响应时日志文档结尾出现:Monkey aborted due to error
3、一般在日志中查询关键字:exception、crash和error
(1)exception:定位错误提示信息,给开发看,让开发改bug
(2)crash:崩溃问题
(3)anr:应用程序位响应
4、当出错后,有可能是机型的兼容性问题,也有可能是app的问题
5、出错类型举例:比如多次点击某个按钮,出现空指针错误
五、高级参数的应用
1、--ignore[事件类型] 若某些事件导致monkey脚步终止,可以该参数忽略问题后继续执行
命令:adb shell monkey -p com.timeweekly.timefinance --throttle 200 --ignore-crashes --ignore-timeouts -v -v -v 10000 >E:MonkeyLog20190401.txt
2、--pct[操作类型][该操作所占的百分比]指定某类操作的百分比,让monkey只做或不做某一类操作。
--pct -touch 100 仅做触摸操作
3、用monkey的种子编号(seed)去复现操作(-s seed序列),记得要关闭app后再执行该命令