Monkey入门介绍_第1页
Monkey入门介绍_第2页
Monkey入门介绍_第3页
Monkey入门介绍_第4页
Monkey入门介绍_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、揭开一个神秘稳定性测试工具的面纱.MonkeyMonkey入门介绍Android系列 制作:Mads(吴越欣)那么问题来了,什么是monkeymonkey.1.1.什么是monkeymonkeymonkey是运行在你的程序 模拟器或设备,并生成用户事件的伪随机流,例如点击,触摸,或手势,以及若干系统级事件。您可以使用monkey压力测试应用程序。Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。带你进入monkeymonkey的精神世界.2.2.如何操作monkeymonkey1.进入monkey环境1.1首先检测android真机/模拟器是否已经连接:adb device1.

2、2然后选取一个设备来进入shell:adb -s XX设备 shell,当然如果你只有一个设备,完全可以写adb shell2.2.进入shell之后monkey help查看monkey的帮助,当然你可以去官网看手册来进行学习3.查看应用package3.1.aapt dump badging E:apkes3.apk3.2.开发版手机或模拟器UI利器:hierarchyviewer3.Monkey3.Monkey操作的参数解析3.1有关参数p的学习:参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包

3、,Monkey将允许系统启动设备中的所有APP。指定一个包: adb shell monkey -p com.htc.Weather 100说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。指定多个包:adb shell monkey -p com.htc.Weather p com.htc.pdfreader -p com.htc.photo.widgets 100不指定包:adb shell monkey 1003.2有关参数v的学习:用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:日

4、志级别 Level0 :示例 adb shellmonkey -p com.htc.Weather v 100说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息日志级别 Level 1:示例 adb shellmonkey -p com.htc.Weather v -v 100说明 提供较为详细的日志,包括每个发送到Activity的事件信息日志级别 Level 3:示例 adb shellmonkey -p com.htc.Weather v -v v 100说明 最详细的日志,包括了测试中选中/未选中的Activity信息3.3参数: -s用于指定伪随机数生成器的seed值,如果s

5、eed相同,则两次Monkey测试所产生的事件序列也相同的。Monkey测试1:adb shell monkey -p com.htc.Weather s 10 100两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽 然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;这个-s就是指定了操作的顺序!3.4参数:-throttle 用于指定用户操作(即事件)间的时延,单位是毫秒;示例:adb shell monkey -p com.htc.We

6、ather throttle 3000 1004.4.高级的DemoDemo介绍adb shell monkey -p com.tmall.wireless -v -v -pct-touch 50 -pct-trackball 30 -throttle 300 100用monkey测试天猫的这个包触摸操作百分之50,轨迹球操作百分之30,其它操作百分之20,总共进行100次随机点击,事件之间间隔300ms5.monkey5.monkey的特征5.1.测试的对象仅为应用程序包,有一定局限性5.2Monkey测试使用的事件随机流是随机的,不能进行自定义5.3可对MonkeyTest的对象,事件数量

7、,类型,频率等进行设置Monkey的停止条件:1.如果限定了Monkey运行在一个或者几个特定包上,那么他会监控测试图到其它包的操作,并对其进行组织2.应用程序崩溃或接收到任何失控异常3.应用程序不响应4.正常运行结束5.强制停止进程MonkeyMonkey的异常loglog解析.6.Monkey6.Monkey的异常loglog总结6.1Null指针异常空指针异常主要是有NullPointerException异常提示,在Monkey测试过程中,该信息一般记录在plog.log (locat中也有该信息)中。如果Monkey命令被中断,说明有异常信息并且有对应的打印信息,可以看到如下信息,说

8、明几个问题:A、cess.acore该进程出现异常B、异常信息主要是由于NullPointerException引起的,也就是出现了空指针,导致了acore进程进入debugC、具体的可以继续分析是由哪个函数的那一行导致的,如可以从rollAnimate3dRotate.java文件中的275行查找等。/at com.android.launcher.LauncherAnimator.ScrollAnimate3dRotate.drawFrame(ScrollAnimate3dRotate.java:275)D、可能同一应用中存在多处的空指针异常,所以一旦出现空指异常后,

9、可以分析和对比log信息,如果不一致的话,需要把新的log信息也一同添加到bug中,如果log信息一直的话,则不需要继续补充没有必要的log信息。7.2debug异常debug异常主要是由于应用程序本身的错误导致的异常。在Monkey测试过程中,该信息同样记录在plog.log (locat中也有该信息)中。一般情况下,出现的该问题,很可能在手动测试时也可以测试到。A、 com.android.browser该进程进入debugB、 出现的是IllegalStateException异常,该异常一般多是传递的参数非法或被多次调用时出现的异常C、 Bug信息提交时,详细信息中一般应该包含如下的l

10、og信息,方便开发人员分析和定位。6.3低内存异常低内存异常一般情况下,主要表现在出现OutOfMemoryError异常或者提示Out of memory,其后果同样表现为抛出OutOfMemoryError异常或者是通过kill process 来杀掉部分进程以释放内存空间,当然如果被kill点关键的进程的话,也就可能导致部分应用会自动的退出。出现该情况时,主要是在进行频繁的进行大量的操作导致的,所以使用手动的方式也是可能进行重现的。A、 com.android.elastos.backup该进程出现的异常B、 出现的是OutOfMemoryError异常,该异常一般多频繁的操作(即多次调

11、用某个函数,存在申请变量空间未释放)导致的C、 Bug信息提交时,详细信息中同样应该包含如下的log信息,方便开发人员分析和定位。6.4操作无响应异常操作无响应的问题,主要表现在Monkey运行过程中,出现某功能无响应,提示是否“强制关闭“或“等待“,同时会打印出相应的log信息,如下:A、 可以说明com.android.soundrecorder该进程出现的无响应B、 出现的是TimerOut异常,该异常一般出现时一般都会又keyDispatchingTimedOut提示C、 目前,uPhone手机中经常出现操作无响应的几个模块包括:clock、camera、soundrecorder、b

12、roser等,根据开发人员分析其他模块也是有可能出现操作无响应的,测试过程中,请多注意。D、 出现无响应异常,一般情况下很难被修复,和发送事件的频率也是有关系的,从质量上来要求的话,要求尽可能的减少出现操作无响应的频率和时间。6.5其他异常A、 Restart System异常(系统重新启动),即log信息的最后几行会看到Restart System的打印信息,说明手机被自动的重启或断掉,有几个方面的原因1、 运行过程中,存在异常手机被自动重启2、 手机在运行过程中,进入设置中的恢复出场设置,导致手机重启3、 其他原因,如果手机后盖移动等B、 RuntimeException等异常,同样的会在

13、plog.log中可以看到相应的打印信息, java.lang.RuntimeException该问题多出现在操作无响应之后,或者是某应用的服务无法启动或连接时,需要具体问题具体的分析C、 StaleDataException、readException等异常, 在plog.log中可以看到相应的打印信息,也会有相应的信息: android.database.StaleDataException,该信息说明android的数据库操作出现异常, 需要具体问题具体的分析D、 IllegalArgumentException等异常,多少情况下为说明向函数传递了一个不正确或不合法的参数需要具体问题具体的分析E、 其他,带补充和分析说明一些好的测试建议.说明几点:1、 log信息的分析,希望在bug信息的简述中能够明确说明清楚出现的是什么异常,具体的log信息要单独添加到详细信息描述中,方便相关人员定位和查看。2、 buy的提交,对于Monkey测试出现的问题a、 首先要求分析l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论