Android monkey自动化测试,有时候也被叫做压力测试。比如要对一个名为zhangphil.app的App进行像真人一样的测试,假设对这个App随机在各个位置点击9999次,monkey的命令为:
adb shell monkey -p zhangphil.app 9999
-p表示筛选的applicationId,或包名。
部分重要常用的Android monkey自动化测试(压力测试)命令参数说明:
-p
指定monkey自动测试那个App(Android包)。如果不指定这个值,那么Android monkey将测试设备中所有可测试的App(即全机测试)。
使用形式:
adb shell monkey -p xxx.xxx 3
xxx.xxx即为Android包名。3为模拟的事件点击次数。
-v
输出monkey自动化测试信息的详细程度。-v越多越详细。最多三个即:-v -v -v,默认是一个:-v。如:
adb shell monkey -p xxx.xxx -v -v -v 1
对应用程序xxx.xxx模拟1次点击事件,输出最详细、尽可能多的测试信息(三个-v)。
--throttle
测试事件的时间间隔。设定每发生一次事件后多久再继续下一次测试事件。如果不设定该参数,模拟事件发生的间隔为0。参数值为毫秒单位。
adb shell monkey -p xxx.xxx -v -v -v --throttle 1000 5
该命令对应用xxx.xxx模拟点击事件5次,每次事件发生的时间间隔为1秒(1000毫秒)。正常人类的触摸点击时间间隔约为300毫秒。
-s
一次monkey测试的随机种子。如果若干次monkey测试过程中使用相同的种子值,则以相同事件序列执行测试。这对于问题bug的复现很有用。
使用方式:
adb shell monkey -p xxx.xxx 3 -s 123456
其中3是模拟点击事件的次数。
--ignore-crashes
是否忽略App的崩溃。如果不设定该参数,monkey在自动化测试阶段只要发生崩溃就终止测试;若设定才参数,则monkey会忽略崩溃,运行到指定事件才结束。
如命令:
adb shell monkey -p xxx.xxx 3 -s 123456 --ignore-crashes
对xxx.xxx模拟点击3次事件,忽略崩溃。
--ignore-timeouts
是否忽略ANR(应用程序无响应)。如果设定该参数,monkey会忽略App在测试阶段发生的ANR错误。
--ignore-native-crashes
是否忽略本地代码崩溃,设定该参数将忽略。默认不忽略。