一、什么是monkey
Monkey 测试是 Android 自动化测试的手段之一,它通过模拟用户的按键输入、触摸屏输入等,测试设备多长时间出现异常。Monkey 是一个命令行工具,可以运行在模拟器或实际设备中,通过向系统发送伪随机的用户事件流,实现对全系统或某个应用程序进行压力测试。
二、操作
真机连接电脑,启动cmd执行命令:
(如果是复制下面的命令,容易出错,命令是不能换行的。可以先复制到QQ对话框,修改后复制到adb中运行)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
三、指定测试的约束选项
1、指定测试的包
对某一个具体的应用进行测试,可指定具体的包名。可以在系统目录/data/data下查找对应的包名:
查找到对应的包名后,使用 monkey 时可用“-p”参数进行指定,此外还可以使用“-v”参数指定测试中反馈的信息。常用格式如下:
monkey –p (指定的包名) –v 50
注意:每个“-p”只能指定一个包,若需指定对多个包进行测试,则要用多个“-p”参数进行指定。
2、指定测试的类
若需对某个具体类进行测试,可以使用“-c”参数指定,若需指定多个类别,则要用多个“-c”参数选项分别指定,每个“-c”只能指定一个类别。其使用的命令格式为:
monkey –c (类名) -v 50
注意:想要查看手机中所有包名及类名,需要有root权限。
3、指定测试的时间类型和频率
Monkey 命令提供了众多选项用于指定事件的类型和发生频率, 例如触摸事件、 导航事件、轨迹事件(由一个或多个随机的移动组成,有时还伴随有点击)。有时为了测试某个具体应用,需要通过“事件”的反复发生来进行专项的功能测试,此时即可通过 monkey 的“--pct”选项来进行指定具体事件及其发生的频率。
1)命令使用格式如下示例:
monkey --pct-syskeys 18 –v 1000
以上命令表示系统按键事件的发生率为 18%,共测试 1000 次。
注意:“pct”前面是英文输入状态下两个杠“-”。
2)还可以分别指定两个事件的发生频率,命令使用方式如下所示:
monkey --pct-touch 18 --pct-trackball 18 –v 1000
以上命令表示触摸事件和轨迹事件发生概率分别为 18%和 18%,共测试 1000 次。
3)通过“--throttle”指定事件间的间隔,可以延缓事件的发生,如:
monkey --pct-nav 80 --throttle 1000 1000
指定导航事件发生概率为 80%,每次事件相隔 1 秒中发生,共测试 1000 次。
Monkey运行结果中对应的事件为:
0:--pct-touch
//touch events percentage触摸事件百分比(触摸事件是一个在屏幕单一位置的按下-抬起事件)
1:--pct-motion
//motion events percentage手势事件百分比
(手势事件是由一个在屏幕某处的按下事件、一系列的伪随机移动、一个抬起事件组成)即一个滑动操作,但是是直线的,不能拐弯
2:--pct-pinchzoom
//pinch zoom events percentage二指缩放百分比,即智能机上的放大缩小手势操作
3:--pct-trackball
//trackball events percentage轨迹球事件百分比
(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
4:--pct-rotation
//screen rotation events percentage屏幕旋转百分比,横屏竖屏
5:--pct-nav
//nav events percentage”基本”导航事件百分比
(导航事件包括上下左右,如方向输入设备的输入)老手机的上下左右键,智能机上没有
6:--pct-majornav
//major nav events percentage”主要”导航事件百分比
(这些导航事件通常会引发UI的事件,例如5-way pad的中间键、回退键、菜单键)
7:--pct-syskeys
//system(key) operations percentage”系统”按钮事件百分比
(这些按钮一般专供系统使用,如Home, Back, Start Call, End Call,音量控制)
8:--pct-appswitch
//app switch events percentage启动activity事件百分比。在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
9:--pct-flip
//keyboard flip percentage键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
10:--pct-anyevent
//anyevents percentage其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。
4、指定测试的调试选项
Monkey 命令提供了若干用于控制测试过程的调试选项。例如参数“--ignore-crashes” ,将忽略应用程序崩溃或发生的任何异常,继续向系统发送事件,直到计数完成。使用命令格式如下:
monkey --ignore-crashes -v 5000
常用的调试选项及说明如下:
--dbg-no-events
设置此选项,Monkey将执行初始启动,进入到一个测试Activity,然后不会再进一步生成事件。为了得到最佳结果,把它与-v、一个或几个包约束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来,从而提供一个环境,可以监视应用程序所调用的包之间的转换。
--ignore-crashes
通常,当应用程序崩溃或发生任何失控异常时,Monkey将停止运行。如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
--ignore-timeouts
通常,当应用程序发生任何超时错误(如“Application Not Responding”对话框)时,Monkey将停止运行。如果设置此选项,Monkey将继 续向系统发送事件,直到计数完成。
--ignore-security-exceptions
通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey将停止运行。如果设置了此选项,Monkey将继续向系统发送事件,直到计数完成。
--kill-process-after-error
通常,当Monkey由于一个错误而
进阶Python接口自动化测试必备教程(2023全网最详细)