Monkey测试策略--包的指定

上一篇 / 下一篇  2014-04-28 10:43:11 / 个人分类:Monkey

Monkey的测试策略
来自: http://www.douban.com/note/257030159/

一. 分类

Monkey测试针对不同的对象和不同的目的采用不同的测试方案,首先测试的对象、目的及类型如下:

测试的类型分为:应用程序的稳定性测试和压力测试

测试对象分为:单一apk和apk集合

测试的目的分为:解决问题的测试(忽略异常的测试)和验收测试(不忽略异常的测试)

二. 应用程序的稳定性测试:

约束限制

-p<allowed-package-name>

如果用此参数指定了一个或几个包,Monkey 将只允许系统启动这些包里的Activity。如果你的应用程序还需要访问其它包里的Activity(如选择取一个联系人),那些包也需要在此同时指 定。如果不指定任何包,Monkey将允许系统启动全部包里的Activity。要指定多个包,需要使用多个 -p选项,每个-p选项只能用于一个包。
* 指定一个包: adb shell monkey -p com.htc.Weather 100

说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。

* 指定多个包:adb shell monkey -p com.htc.Weather –pcom.htc.pdfreader -p com.htc.photo.widgets 100

* 不指定包:adb shell monkey 100

说明:Monkey随机启动APP并发送100个随机事件。

* 要查看设备中所有的包,在CMD窗口中执行以下命令:

>adb shell

#cd data/data

#ls

1. 针对单个apk

(1) 不忽略异常

在进行单个apk的验收测试时,则使用单一apk且不忽略异常的命令执行。

例如:
monkey -p com.android.mms --throttle 1000 -s 100-v -v -v 15000 > /mnt/sdcard/monkey_test.txt &

(2) 忽略异常

在进行单个apk的解决问题的测试时,则使用单一apk且忽略异常的命令执行,这样可以在一次执行的过程中发现应用程序中的多个问题。

例如:
monkey -p com.android.mms --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 &

2. 针对多个apk

(1) 不忽略异常

例如:

monkey --pkg-whitelist-file /data/whitelist.txt--throttle 1000 -s 100 -v -v -v 15000 > /mnt/sdcard/monkey_test.txt &

(2) 忽略异常

例如:

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


-v

命令行的每一个-v将增加反馈信息的级别。

Level 0(缺省值)除启动提示、测试完成和最终结果之外,提供较少信息。

Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。

Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。

日志级别 Level 0

*示例 adbshell monkey -p com.htc.Weather –v 100

说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1

*示例 adbshell monkey -p com.htc.Weather –v -v 100

说明 提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2

*示例 adbshell monkey -p com.htc.Weather –v -v –v 100

说明 最详细的日志,包括了测试中选中/未选中的Activity信息

事件

-s <seed>

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

* 示例:

Monkey测试1:adb shellmonkey -p com.htc.Weather –s 10 100

Monkey 测试2:adb shellmonkey -p com.htc.Weather –s 10 100

两 次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽 然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-16  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 5445
  • 日志数: 3
  • 建立时间: 2014-04-28
  • 更新时间: 2014-04-28

RSS订阅

Open Toolbar