前言

下面介绍一下Monkey的参数意义,以及进场使用的的测试命令。

记录于此,方便自己查阅。

正文

规范类命令

数字
adb shell monkey 100

100表示Monkey事件次数为100

> log.txt
# 保存到当前目录的log.txt种
adb shell monkey 100 > log.txt

# 保持到e盘的log.txt中
adb shell monkey 100 > e:\log.txt
-v

指定打印信息的详细级别,一个-v增加一个级别,总共分3个级别:Level 0、Level 1、Level 2。

Level 0

0级日志打印,除了启动提示、测试完成和最终结果外,提供极少的信息。

# 10000为测试事件次数
adb shell monkey -v 10000
Level 1

1级日志打印,提供较详细的信息,比如,发送到Activity的事件等

adb shell monkey -v -v 10000
Level 2

2级日志打印,提供超级详细的信息,比如,测试中被选中的或为被选中的Activity等

adb shell monkey -v -v -v 10000

约束类命令

-p

后面+包名,指定对该包名进行测试

adb shell monkey -p com.biumall.test 
-c

-c确定一个或多个特定的类别,Monkey就只允许系统去访问这些特定类别下列出的Activity了。

若不指定的话,默认访问Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY下的Activity

主要的category:

1. intent.CATEGORY.ALTERNATIVE
2. intent.CATEGORY.BROWSABLE
3. intent.CATEGORY.DEFAULT
4. intent.CATEGORY.DEVELOPMENT_PREFERENCE
5. intent.CATEGORY.EMBED
6. intent.CATEGORY.HOME
7. intent.CATEGORY.INFO
8. intent.CATEGORY.LAUNCHER
9. intent.CATEGORY.MONKEY
10. intent.CATEGORY.OPENABLE
11. intent.CATEGORY.PREFERENCE
12. intent.CATEGORY.SELECTED_ALTERNATIVE
13. intent.CATEGORY.TAB

调试类命令

–ignore-crashes

于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。

使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

即使程序崩溃,Monkey依然会继续发送事件直到事件数目达到100为止

如果没有,上面参数,一旦有崩溃,就停止Monkey了。

# 忽略崩溃
adb shellmonkey -p com.biumall.test --ignore-crashes 100
# 一旦崩溃就停止
adb shellmonkey -p com.biumall.test  100
–ignore-timeouts

用于指定当应用程序发生ANR错误时,Monkey是否停止运行。

使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

# 忽略ANR
adb shellmonkey -p com.biumall.test --ignore-timeouts 100
# 一旦ANR就停止
adb shellmonkey -p com.biumall.test  100
–ignore-security-exceptions

用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。

使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

–kill-process-after-error

用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态

(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

–monitor-native-crashes

监控本地代码的崩溃。

事件类命令

-s

用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

# Monkey 测试1
adb shell monkey -p com.biumall.test -s 10 100
# Monkey 测试2
adb shell monkey -p com.biumall.test –s 10 100

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。

这个参数不是很理解

–throttle<毫秒>

用于指定用户操作(即事件)间的时延,单位是毫秒;

adb shell monkey -p com.biumall.test --throttle 500 100

其中

--throttle 500

表示延迟500毫秒。

–pct-touch

格式

--pct-touch{+百分比}

用例

# touch事件占10%
adb shell monkey -p com.biumall.test --pct-touch 10 100

调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)

–pct-motion

调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随件机事和一个up事件组成)

--pct-motion {+百分比}
–pct-trackball

调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

--pct-trackball {+百分比}
–pct-nav

调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

--pct-nav {+百分比}
–pct-majornav

调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

--pct-majornav {+百分比}
–pct-syskeys

设置系统按键事件的百分比(如Home键、Back键)

–pct-appswitch

设置启动Activity的百分比

–pct-anyevent

设置其他类型事件的百分比

monkey测试命令

下面是简单的测试

不过滤
adb shell monkey -v -v -v --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes 1000000
白名单

白名单就是只测试白名单中的包名。

下面是白名单内容,一行一个包名,

com.biumall.music
com.biumall.radio
com.biumall.files
com.biumall.settings

然后push到/data目录下

adb shell monkey --pkg-whitelist-file /data/whitelist.txt -v -v -v --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes 1000000
黑名单

黑名单就是不测试黑名单中的包名。

下面是白名单内容,一行一个包名,下面是不测试的包名:

com.biumall.speech
com.biumall.vr
adb shell monkey --pkg-blacklist-file /data/blacklist.txt -v -v -v --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes 1000000

抓取日志脚本

这部分来自参考文2,觉得不错,记录于此。

adb devices
@echo off
set serial=
set /p serial=Enter device serial or only enter:

if "%serial%"=="" (
    set cmd_adb=adb
    set cmd_fastboot=fastboot
) else (
    set cmd_adb=adb -s %serial%
    set cmd_fastboot=fastboot -s %serial%
)

:again
echo get root right
%cmd_adb% root
echo wait for device
%cmd_adb% wait-for-device
echo capture system log start at %date%_%time%
%cmd_adb% logcat tag:V -v time > system_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.txt
echo device disappeared, wait for device again
%cmd_adb% wait-for-device
goto again
pause

参考文章

  1. Android稳定性测试利器-Monkey参数及实例介绍

  2. monkey测试详解

  3. monkey命令参数的详解

  4. Android自动化测试入门工具-Monkey

相关文章

暂无评论

none
暂无评论...