Android adb Monkey Test 冒烟测试
Android adb About 3,436 wordsMonkey 简介
Monkey
是Android
中的一个命令行工具,向系统发送伪随机的用户事件流(点击、滑动、Application
切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。Monkey
测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。只针对Activity
做测试,不能对Service
做测试。
质量要求
版本release
(发布)前,Monkey
跑出来的结果中crash
要为0
,final release
前,Monkey
跑完的总次数应为25W
,结果里不允许有NullPointException
出现。
命令参数
adb shell
命令模式下输入:monkey
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore-crashes] [--ignore-timeouts]
[--ignore-security-exceptions]
[--monitor-native-crashes] [--ignore-native-crashes]
[--kill-process-after-error] [--hprof]
[--pct-touch PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
[--pct-permission PERCENT]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg] [--dbg-no-events]
[--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
[--port port]
[-s SEED] [-v [-v] ...]
[--throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
[--permission-target-system]
COUNT
参数含义:
--hprof
:指定该项后在事件序列发送前后会立即生成分析报告,一般建议指定该项--ignore-crashes
:忽略崩溃--ignore-timeouts
:忽略超时--ignore-security-exceptions
:忽略安全异常--kill-process-after-error
:发生错误后直接杀掉进程--monitor-native-crashes
:跟踪本地方法的崩溃问题--wait-dbg
:直到连接了调试器才执行Monkey
测试--dbg-no-events
:初始化启动的activity
,但是不产生任何事件。--pct-touch PERCENT
:指定触摸事件的百分比:--pct-touch 5%
--pct-motion PERCENT
:滑动事件--pct-trackball PERCENT
:轨迹球事件--pct-nav PERCENT
:导航事件up
/down
/left
/right
--pct-majornav PERCENT
:主要导航事件back key
、menu key
--pct-syskeys PERCENT
:系统按键事件Home
、Back
、startCall
、endCall
、volumeControl
--pct-appswitch PERCENT
:activity
之间的切换--pct-anyevent PERCENT
:任意事件
最简单命令
在adb shell
模式下执行。
执行1000
次monkey
点击
monkey 1000
-p 参数
用于约束限制,用此参数指定一个或者多个包,指定包之后,Monkey
将只允许启动指定App
,如果不指定包,Monkey
将启动系统中所有的App
。
monkey -p com.example.test 1000
-v 参数
用于指定反馈的信息级别(日志的详细程度),分为三个级别,级别越高,日志越详细。
monkey -p com.example.test -v 1000
monkey -p com.example.test -v -v 1000
monkey -p com.example.test -v -v -v 1000
-s 参数
指定伪随机数生成器的seed
值,如果seed
相同,则两次Monkey
测试产生的事件序列也相同。
monkey -p com.example.test -s 30 -v 1000
--throttle 参数
制定每个事件结束后的间隔时间,降低系统压力,单位:毫秒。 如果不指定系统会尽快的发送事件序列。
monkey --throttle 1000
导出测试日志
需退出shell
命令,在cmd
或bash
模式下执行。shell
命令相当于进入Linux
的root
下面,没有权限在里面创建文件。
adb shell monkey -v -v -v 1000 > D:\monkey_log\test.txt
标准流与错误流分开保存
monkey [option]
monkey -v -v -v 1000 1>D:/normal.txt 2>D:/error.txt
停止 Monkey
进入adb shell
模式
ps | grep monkey
找出monkey的pid
kill pid
防止 Monkey点击状态栏,虚拟按键
需在开发者选项中打开USB
调试(安全设置)
隐藏
adb shell settings put global policy_control immersive.full=*
恢复
adb shell settings put global policy_control null
示例
monkey -p com.android.contacts --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes -v -v -v 300000 1>/sdcard/20190409_normal.txt 2>/sdcard/20190409_error.txt
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓