主题 : Monkey测试的策略和分析 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 121713
精华: 0
发帖: 32
金钱: 180 两
威望: 36 点
贡献值: 0 点
综合积分: 64 分
注册时间: 2015-12-24
最后登录: 2016-12-22
楼主  发表于: 2016-12-05 15:17

 Monkey测试的策略和分析



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.tencent.smtt.SplashActivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。

以上希望对做app测试的同学有帮助。