Monkey学习笔记

一、Monkey的中文意思为“猴子”,就是乱按乱点。Monkey测试是自动化测试的一种手段。接下来就是记录了我关于用monkey进行自动化测试。

二、首先monkey的运行环境非常简单,只需要下载Android sdk 压缩包,解压后即可。解压完成之后可以配置环境变量,这个很简单,不详细记载,具体截图如下:
在这里插入图片描述
在这里插入图片描述

三、接下来看一下monkey工具的使用参数信息。adb shell monkey
在这里插入图片描述
(1)从这里面可以看到有一个-p的参数,这个参数就是制定要运行哪个包,后面跟包名 (如何查看包名我在adb常用命令里面记载过。),所以我们的命令也就是 adb shell monkey -p com.doumi.jianzhi 1000,后面这个1000指的是向这个APP发送1000次随机事件。这时候能够发现手机已经运行起来了。成功执行后,显示下图信息。
在这里插入图片描述
(2)然后我来查看一下执行过程中的信息。-v可以用来指定打印信息的详细级别,每增加一个-v就就增加一个信息的详细级别,总共三个级别,级别越高信息越全面。
0级:adb shell monkey -v -p com.doumi.jianzhi 1000
打印测试执行时的一些发送给被测Activity的事件
1级:adb shell monkey -v -v -p com.doumi.jianzhi 1000
增加了哪些Activity被选中,将在信息中输出来
2级:adb shell monkey -v -v -v-p com.doumi.jianzhi 1000
最详细的日志,包括了测试中选中/未选中的Activity信息
如下:
在这里插入图片描述
(3)-s 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的,则两次测试效果也是相同的。(比如说上次先执行的是先单击再滑行,如果这次seed值和上次一样,那么也是先单击再滑行。),所有我们可以利用这个参数来帮助我们复现问题。
在这里插入图片描述
(4)–throttle 用于操作各操作间的延时,单位是毫秒。例如:
adb shell monkey -v -p com.doumi.jianzhi --throttle 3000 1000(每个操作间隔3秒)
这时候发现手机上的操作不是最开始那种一闪而过的场景了。
(5)在使用monkey测试的时候,我们有可能还会想控制一下按键、触屏、滑动等时间的百分比,以下几种就是可以控制时间百分比的命令。
向APP发送50次随机事件,每次事件间隔3秒,其中设定触屏时间占50%
adb shell monkey --pct-touch 50 -p com.doumi.jianzhi --throttle 3000 50
滑动事件
adb shell monkey --pct-motion 50 -p com.doumi.jianzhi --throttle 3000 50
设定轨迹球事件
adb shell monkey --pct-trackball 50 -p com.doumi.jianzhi --throttle 3000 50
设定基本导航事件(例如:向上、向下、向左、向右)
adb shell monkey --pct-nav 50 -p com.doumi.jianzhi --throttle 3000 50
设定主要导航事件(例如:点击back键、menu键等)
adb shell monkey --pct-majornay 50 -p com.doumi.jianzhi --throttle 3000 50
控制设备系统按键(例如:拨号、挂断、音量控制键)
adb shell monkey --pct-syskeys 50 -p com.doumi.jianzhi --throttle 3000 50
(6) --ignore-crashes 加了这个参数,即使应用程序崩溃,monkey仍可以继续发送事件,直到事件数目达到设置的为止。如果不加这个参数,运行过程中如果出现崩溃,则monkey停止运行。
adb shell monkey -p com.doumi.jianzhi --ignore-crashes 50
(7) --ignore-timeouts 发生超时,ANR,monkey仍继续发送事件。
adb shell monkey -p com.doumi.jianzhi --ignore-timeouts 50
(8) --ignore-security-exceptions 程序发生许可错误(如:证书许可、网络许可等),monkey仍继续发送事件。
adb shell monkey -p com.doumi.jianzhi --ignore-security-exceptions 50
(9) --kill-process-after-error 当应用程序发生错误时,应用程序停止运行并保持在当前状态。
adb shell monkey -p com.doumi.jianzhi --kill-process-after-error 1000
(10) --monitor-native-crashes 监视并报告Android系统中本地代码的崩溃事件。
adb shell monkey -p com.doumi.jianzhi --monitor-native-crashes 1000

四、monkey log分析
可以将运行时的日志信息存入到text文件里面,如下:
在这里插入图片描述
然后打开日志文件monkeylog.txt ,查找FATAL EXCEPTION关键字,查找Force finishing activity 关键字,如果下面带有你测试的包名,那说明有问题,就可以给开发看了。
还有一种方法,cmd中输入Monkey语句后,先不要回车。再打开一个cmd,输入:adb logcat -v threadtime >C:\Users\yinda\Desktop\log.txt 然后,第一个cmd窗口回车,紧接着,第二个cmd窗口回车。查看桌面会出现log.txt文件,可以从里面根据关键字过滤错误,如果出现crash错误等,也可以直接把该log.txt给开发看。
在这里插入图片描述
本次学习笔记就先记到这个地方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值