【APP自动化测试】Monkey的测试原理和方法

一、Monkey测试原理

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

二、测试准备

1、首先需要将手机连接到PC,测试连接是否正常,可在cmd里输入adb devices来进行验证;

2、因测试多针对一个特定的APP包,所以需要知道需要测试包的包名;可以直接问开发,也可以通过 adb shell pm list packages 列出所有包名来进行查找

(不确定包是否已安装,可以用adb shell pm list packages [options] 来进行确认,它的含义是列举出所有包含的package。 e.g. adb shell pm list packages com.taobao.taobao)

3、对特定APP包进行测试的命令为adb shell monkey -p

为保证测试数量的完整进行,一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下
adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000

1>  -p
用于约束限制,用此参数指定一个或者多个包,指定包之后,monkey将只允许启动指定app,如果不指定包,monkey将启动系统中所有的app 。
例:指定一个包     monkey -p com.htc.weather -v 1000
        指定多个包     monkey -p com.htc.weather -p com.htc.pdfreader -p com.htc.photo.widgets -v 1000
        不指定包          monkey -v 1000

2>  -v
用于指定反馈的信息级别(日志的详细程度),分为三个级别,级别越高,日志越详细。
level 0:

例:monkey -p com.htc.weather -v 1000

level 1:
例:monkey -p com.htc.weather -v -v 1000
level 2:
例:monkey -p com.htc.weather -v -v -v 1000

3> -s
指定伪随机数生成器的seed值,如果seed相同,则两次monkey 测试产生的**事件序列**也相同。
例: monkey -p com.htc.weather -s 35 -v 1000

4> --throttle(毫秒)
制定每个事件结束后的间隔时间,降低系统压力。(如果不指定系统会尽快的发送事件序列)
例:monkey --throttle 300

5> 定制事件
--pct-touch:指定触摸事件的百分比,例:--pct-touch 5%    , 其他相关的:
--pct-motion  (滑动事件)
--pct-trackball  (轨迹球事件) 
--pct-nav  (导航事件 up/down/left/right)
--pct-majornav  (主要导航事件 back key 、 menu key) 
--pct-syskeys  (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-appswitch  (activity之间的切换)
--pct-anyevent (任意事件)

6>调试选项
--dbg-no-events:初始化启动的activity,但是不产生任何事件。
--hprof:指定该项后在事件序列发送前后会立即生成分析报告  —— 一般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:知道连接了调试器才执行monkey测试。

作用:命令行上的每一个-v都将增加反馈信息的详细级别。
https://www.cnblogs.com/lauren1003/p/6193277.html

你可能感兴趣的:(【APP自动化测试】Monkey的测试原理和方法)