adb-monkey测试
一、前言
monkey是app测试或移动系统测试中必做的测试方法之一;在实际工作中也会经常遇到,作为一个app测试工程师,monkey测试是最基本的技能要求。
二、monkey介绍
monkey是Android SDK提供的一个命令行工具,可在模拟器或实际设备中运行。通过向系统发送伪随机的用户事件流(例如按键、触摸屏、手势操作等),来实现应用程序或应用系统的压力测试,即稳定性测试。
monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。简而言之,就是利用工具模拟人的操作,如触摸屏幕,滑动trackball,按键,对手机app进行大量的随机的点按操作。
三、monkey测试目的
目的是测试app在大量用户随机操作下是否会crash(崩溃)和ANR无响应现象。
四、monkey参数解释
adb的操作命令格式一般为:adb shell monkey+ 命令参数
命令 | 解释 | |
基本参数 | adb shell monkey 50 |
系统随机执行50次事件操作。 |
adb shell monkey -p com.android.camera2 50 |
-p+指定包名,表示指定某个app包执行monkey测试。 |
|
adb shell monkey -p 包名1 -p 包名2 50 |
指定多个包执行50次monkey测试。 |
|
adb shell monkey -s 10 50 |
-s+数字,用于指定伪随机数生成器的seed种子值。如果使用相同的种子值重新运行monkey,他将生成相同的事件,常用于bug复现。 注意:-s需要跟在包名后,次数前。 |
|
adb shell monkey -p com.android.camera2 --throttle 1000 50 |
--throttle+毫秒数,在事件之前插入,起到固定延迟作用;通过这个参数可以减缓monkey的执行速度;如果没有这个参数,事件将尽可能地快速被完成。这里表示50次事件隔一秒执行一次。 |
|
adb shell monkey -p com.android.camera2 --v -v -v 50 |
-v ,用于指定反馈信息级别(就是日志的详细程度) -v,只提供启动提示、测试完成提示和最终结果等少量信息; -v -v,较为详细的日志,包括每个发送到activity的时间信息; -v -v -v,最详细的日志,包括测试中选中/未选中的activity信息。 |
|
调试选项 | adb shell monkey -p com.android.camera2 --ignore-crashes 50 |
--ignore-crashes,忽略崩溃;当应用程序崩溃或发生任何失控异常时(Force或close错误),monkey将停止运行;如果加上这个参数,即使程序崩溃,monkey将继续向系统发送事件,直到事件计数完成。 |
adb shell monkey -p com.android.camera2 --ignore-timeouts 50 |
--ignore-timeouts,忽略超时;当应用程序发送任何超时错误时(如“application not responding”应用程序无反应)monkey将停止运行;如果加上这个参数,即使应用程序发生ANR错误,monkey将继续向系统发送事件,直到计数事件完成。 |
|
adb shell monkey -p com.android.camera2 --monitor-native-crashes 50 |
--monitor-native-crashes,监视本地崩溃代码;监视并报告Android系统中本地代码的奔溃事件。 |
|
adb shell monkey -p com.android.camera2 --ignore-security-exceptions 50 |
|
|
adb shell monkey -p com.android.camera2 --kill-process-after-error 50 |
--kill-process-after-error ,发生错误停止运行并保持当前状态;当应用程序发生错误时,停止其运行;如果加上这个参数,当程序发生错误时,应用程序停止运行并保持在当前状态。 |
|
事件类型 |
--pct-事件类别+事件类别百分比; |
用于指定每种类别事件的次数所占百分比,各种事件类型百分比总和=100% |
monkey所执行的随机事件流中包含11大事件,分别是触摸(--pct-touch,类似点击)、手势(--pct-motion,类似滑动)、缩放(--pct-pinchzoom,二指缩放)、轨迹(--pct-trackball)、屏幕旋转(--pct-rotation)、基本导航(--pct-nav)、主要导航(--pct-mojornav)、系统按键(--pct-syskeys)、activity启动(--pct-appswitch)、键盘翻转(--pct-flip)、其他事件(--pct-anyevent)。monkey通过这11大事件来模拟用户的常规操作,对手机app进行稳定性测试。 |
||
adb shell monkey -p com.android.camera2 --pct-touch 50 --pct-motion 25 --pct-pinchzoom 25 100 |
让设备执行100次事件操作,其中触摸事件50%,手势事件25%,缩放事件25%。 |
五、adb+monkey+Android应用程序实例(已经安装adb)
第一步,连接安卓设备,在Windows系统环境下,打开doc命令窗口,在命令行中输入adb connect 设备序列号;
connected to 设备序列号表示电脑用户端adb已经和安卓设备建立连接了。
第二步,进入shell环境,在命令行中输入adb shell pm list packages -3,查看已安装的第三方应用包名,去掉-3则是查看所有包名;
第二步只是为了查找我想要的包名,如果你提前知道要测试的包名可以省略这一步。
第三步,输入monkey命令。
monkey命令不是固定的,需要我们根据实际的测试需求是编写使用。
六、如何设置monkey运行24小时
monkey没有直接定义时间的命令,我们只能通过计算它的事件执行次数乘以事件之间时间间隔(每条命令的执行时间可以忽略)去间接实现,比如:
想要monkey运行24小时,每100毫秒发送一个事件。(24*60*60*1000)/100=864000(次)
adb shell monkey -p 包名 -v -v -v --ignore-crashes --ignore-timeoutss --throttle 100 864000 >D:\monkey.log
表示:此次monkey将会运行24小时,不过实际运行时间肯定会大于24个小时。
作者:×不知该怎么√ 收藏一直进行,学习从未开始!地址https://www.cnblogs.com/hqh2021/p/17268853.html