monkey结果详解
- 格式:docx
- 大小:62.42 KB
- 文档页数:26
/wfh1988/archive/2010/11/16/1878224.html一、为什么要用Monkey 测试?002003 简单在说就是象猴子一样乱点,为了测试软件的稳定性,健壮性。
号称最快速有效的方法。
有时候运行相同系列的测试,即使是复杂的测试,但是以相同的顺序和路径,即使一遍又一遍地运行也很少机会能发现内存和资源使用的bug 。
而此时猴子就比人更有效了。
004005 简介006007 Monkey 是一个命令行工具 ,可以运行在模拟器里或实际设备中。
它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。
Monkey 包括许多选项,它们大致分为四大类:008009 · 基本配置 选项,如设置尝试的事件数量。
010011 · 运行约束选项,如设置只对单独的一个包进行测试。
012013 · 事件类型和频率。
014015 · 调试选项。
016017 在Monkey 运行的时候,它生成事件,并把它们发给系统。
同时,Monkey 还对测试中的系统进行监测,对下列三种情况进行特殊处理:018019 · 如果限定了Monkey 运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
020021 · 如果应用程序崩溃或接收到任何失控异常 ,Monkey 将停止并报错。
022023 · 如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey 将会停止并报错。
024025 按照选定的不同级别的反馈信息,在Monkey 中还可以看到其执行过程报告和生成的事件。
026027 二、怎么用的?028029 首先用一个最简单的例子分析:030 //p参数:表示指定测试的程序031 //v参数:表示查看monkey生成的一些详细的随机的事件名032 //数字100:表示测试事件数为100033 monkey -p com.example.android.apis -v -v -v 100034035036 结果如下:037038 :Monkey: seed=0 count=100039040041 :AllowPackage: com.example.android.apis042 :IncludeCategory: UNCHER043 :IncludeCategory: android.intent.category.MONKEY044045 //各种事件所占的比例。
046 //各数字分别表示:047 [--pct-touch PERCENT]048 [--pct-motion PERCENT]049 [--pct-trackball PERCENT]050 [--pct-syskeys PERCENT]051 [--pct-nav PERCENT]052 [--pct-majornav PERCENT]053 [--pct-appswitch PERCENT]054 [--pct-flip PERCENT]055 [--pct-anyevent PERCENT]056 // Event percentages:057 // 0: 15.0%058 // 1: 10.0%059 // 2: 15.0%060 // 3: 25.0%061 // 4: 15.0%062 // 5: 2.0%063 // 6: 2.0%064 // 7: 1.0%065 // 8: 15.0%066 :Switch:067068 //表示跳转到com.example.android.apis 里面的ApiDemos 这一个Activity 里。
069 #Intent;action=android.intent.action.MAIN;category=android.intent.c UNCHER;launchFlags=0x10000000;component=com.example.andro id.apis/.ApiDemos;end70071 //允许此Intent 跳转,072 // Allowing start of Intent { act=android.intent.action.MAIN cat=[UNCHER] cmp=com.example.android.apis/.ApiDemos } in packagecom.example.android.apis073074 //发送的一些动作,如点击按下,点击放开,移动。
075 :Sending Pointer ACTION_MOVE x=-4.0 y=2.0076 :Sending Pointer ACTION_UP x=0.0 y=0.0077 :Sending Pointer ACTION_DOWN x=207.0 y=282.0078 :Sending Pointer ACTION_UP x=189.0 y=289.0079 :Sending Pointer ACTION_DOWN x=95.0 y=259.0080 :Sending Pointer ACTION_UP x=95.0 y=259.0081 :Sending Pointer ACTION_DOWN x=295.0 y=223.0082 :Sending Pointer ACTION_UP x=290.0 y=213.0083 :Sending Pointer ACTION_MOVE x=-5.0 y=3.0084 :Sending Pointer ACTION_MOVE x=0.0 y=-5.0085086 //拒绝此跳转,因为它是跳转到非它自己的包的Activity ,本测试中是指写测试它程序所在的包,此跳转是跳出本程序,进入到桌面。
087 // Rejecting start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] cmp=uncher/.Launcher } in packageuncher088089 //继续发送动作。
090 :Sending Pointer ACTION_DOWN x=74.0 y=201.0091 :Sending Pointer ACTION_UP x=74.0 y=201.0092 :Sending Pointer ACTION_MOVE x=3.0 y=-2.0093 :Sending Pointer ACTION_UP x=0.0 y=0.0094 :Sending Pointer ACTION_MOVE x=-4.0 y=2.0095 Events injected: 100096097 //丢弃的,键=0,指针=0,轨迹球=0,翻转=0。
098 :Dropped: keys=0 pointers=0 trackballs=0 flips=0099100 //网络统计经过时间为4202ms ,其中4202ms 是用于在手机上的,0ms 用于无线网络上,没有连接的时间为0ms 。
101 ## Network stats: elapsed time=4202ms (4202ms mobile, 0ms wifi, 0ms not connected)102103 //monkey 测试完成。
104 // Monkey finished105106 从例子中可以看出,该程序在这次测试中没有问题,若程序出现问题终端将打印出异常供程序员查找错误。
107108109110 以下是monkey 命令行的一些参数:111 -p:所在测试的包,可以是一个也可以是多个 如 monkey -p com.androd.sms -p com.androd.explorer112 -c : 如果用此参数指定了一个或几个类别,Monkey 将只允许系统启动被这些类别中的某个类别列出的Activity 。
如果不指定任何类别,Monkey 将选 择下列类别中列出的Activity : Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 。
要指定多个类别,需要使用多个-c 选项,每个-c 选 项只能用于一个类别。
113 -ignore-crash:当应用程序崩溃或发生任何失控异常时,Monkey 将停止运行。
如果设置此选项,Monkey 将继续向系统发送事件,直到计数完成。
114 -ignore-timeouts:通常,当应用程序发生任何超时错误(如“Application Not Responding”对话框)时,Monkey 将停止运行。
如果设置此选项,Monkey将继续向系统发送事件,直到计数完成。
115 -ignore-security-exceptions:通常,当应用程序发生许可错误(如启动一个需要某些许可的Activity)时,Monkey 将停止运行。
如果设置了此选项,Monkey 将继续向系统发送事件,直到计数完成。
116 -monitor-native-crashes:监视并报告Android 系统中本地代码的崩溃事件。
如果设置了–kill-process-after-error ,系统将停止运行。
117 -kill-process-after-error:如果程序出现错误,monkey 将结束此程序进程。
118 -hprof :设置此项,将在monkey 事件序列之前和之后立即生成profilling 报告。
这将会在data/misc 中生成大文件(约5mb )所以要小心使用它。
119 -pct-touch:调整触摸事件的百分比(触摸事件是一个down-up 事件,它发生在屏幕的某单一位置)。
120 -pct-motion:动作事件的百分比(动作事件由屏幕上某处的一个down 事件、一系列的随机事件和一个up 事件组成)。
121 -pct-trackball:调整轨迹事件的百分比(轨迹事件由一个或几个随机移动组成,有时还伴随着点击)。
122 -pct-syskeys:调整系统按键事件的百分比(这些按键通常被保留,由系统使用,如home,back,start call,end call 及音量控制)。
123 -pct-nav 调整基本导航事件的百分比(导航事件来自方向输入设备的up/down/left/right 组成)。
124 -pct-majornav:调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way 键盘的中间按键、回退按键、菜单按键) 125 -pct-appswitch:调整启动Activity 的百分比。