Monkey 测试针对不同的对象和不同的目的,需要采用不同的测试方案。
首先测试的对象、目的及类型如下:
- 测试的类型
- 应用程序的稳定性测试
- 应用程序的压力测试
- 测试对象
- 单一 apk
- apk 集合
- 测试的目的
- 解决问题的测试(忽略异常的测试)
- 验收测试(不忽略异常的测试)
应用程序的稳定性测试
针对单个apk
- 不忽略异常
在进行单个 apk 的验收测试时,则使用单一 apk 且不忽略异常的命令执行。
例如:
monkey -p com.android.mms --throttle 1000 -s 100-v -v -v 15000 > /mnt/sdcard/monkey_test.txt &
- 忽略异常
在进行单个 apk 的解决问题的测试时,则使用单一 apk 且忽略异常的命令执行,这样可以在一次执行的过程中发现应用程序中的多个问题。
例如:
monkey -p com.android.mms --throttle 1000 -s 100--ignore-crashes --ignore-timeouts --ignore-security-exceptions--ignore-native-crashes --monitor-native-crashes -v -v -v 15000 >/mnt/sdcard/monkey_test.txt &
针对多个 apk
- 不忽略异常
例如:
monkey --pkg-whitelist-file /data/whitelist.txt--throttle 1000 -s 100 -v -v -v 15000 > /mnt/sdcard/monkey_test.txt &
- 忽略异常
例如:
monkey --pkg-whitelist-file /data/whitelist.txt--throttle 1000 -s 100 --ignore-crashes --ignore-timeouts--ignore-security-exceptions --ignore-native-carshes --monitor-native-crashes-v -v -v 15000 > /mnt/sdcard/monkey_test.txt &
应用程序的压力/健壮性测试
应用程序的压力/健壮性测试,其主要是缩短 monkey 测试中事件与事件之间的延迟时间,验证在快速的事件响应的过程中,程序是否能正常运行。这种压力/健壮性测试主要是针对单一 apk 来执行;我们可以将 --throttle
的值设定为 500 或者更小,一般都使用 500 毫秒的延迟事件。
在进行 apk 的集合测试时,对于高频率使用的 apk、长时间使用的 apk 都要包含在执行的应用程序中间。
APK分类具体:
- 高频率使用的 apk 如:Phone、Contacts、Message、Settings、File Manager、Gallery、Input Method
- 长时间使用的 apk 如:Phone、Browser、Music player、Camera、Video player、Email、Chat
- 其他的 apk 如:Calendar、Notepad、Calculator、FM Radio、Google Search