Monkey测试针对不同的对象和不同的目的采用不同的测试方案,首先测试的对象、目的及类型如下:
测试的类型分为:应用程序的稳定性测试和压力测试
测试对象分为:单一apk和apk集合
测试的目的分为:解决问题的测试(忽略异常的测试)和验收测试(不忽略异常的测试)
对于应用程序的稳定性测试有两中情况
在针对单个apk是,对不忽略异常的,在进行单个apk的验收测试时,则使用单一apk且不忽略异常的命令执行。对忽略异常的,在进行单个apk的解决问题的测试时,则使用单一apk且忽略异常的命令执行,这样可以在一次执行的过程中发现应用程序中的多个问题。
而针对多个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
再说说Monkey测试的初步分析方法,Monkey测试出现错误后,一般的差错步骤为以下几步:
1、 找到是monkey里面的哪个地方出错
2、 查看Monkey里面出错前的一些事件动作,并手动执行该动作
3、 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样
而一般的测试结果分析: 1、 ANR问题:在日志中搜索“ANR” 2、 崩溃问题:在日志中搜索“Exception”
对于详细分析monkey日志,将执行Monkey生成的log,从手机中导出并打开查看该log;在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名。首先我们需要查看Monkey测试中是否出现了ANR或者异常, 然后我们要分析log中的具体信息,查看log中第一个Switch,主要是查看Monkey执行的是那一个Activity,譬如下面的log中,执行的是com.tencen.smtt.SplashActivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
以上希望对做app测试的同学有帮助。