您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > monkey测试精华(手把手教)
monkey测试是啥呢?monkey是的英文名,monkey测试就测试啦,拿着手机能干哈子啊,当然是感到好奇、一顿乱点啦,没有目的的进行操作!言归正传一、WhatistheMonkeyMonkey是Android\SDK中附带的一个工具Monkey测试的原理:利用socket通讯(Android客户端和服务器以TCP/UDP方式)的方式来模拟用户的按键输入、触摸屏输入、手势输入等Monkey测试的目的:该工具可进行压力测试,更多的是一种随机测试和稳定性测试;开发人员可以结合Monkey打印的日志和系统打印的日志来分析测试的结果二、Monkey的特征1、测试的对象仅为应用程序包,有一定的局限性。2、Monkey测试使用的事件流数据流是随机的,不能进行自定义。3、可对MonkeyTest的对象、事件数量、类型、频率等进行设置三、关于Monkey测试的停止条件MonkeyTest执行过程中在下列三种情况下会自动停止:1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。3、如果应用程序产生了应用程序不响应(applicationnotresponding)的错误,Monkey将会停止并报错。通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序四、Monkey的命令Monkey可分四大类:常用选项、事件选项、约束选项、调试选项1、常用选项-help:打印帮助信息monkey命令的简单帮助:adbshellmonkey-help-v:用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别日志级别Level0示例:adbshellmonkey-pcom.htc.Weather-v100日志级别Level1示例:adbshellmonkey-pcom.htc.Weather-v-v100日志级别Level2示例:adbshellmonkey-pcom.htc.Weather-v-v-v1002、事件选项-s:用于指定伪随机数生成器的seed(种子)值,如果seed相同,则两次monkey测试所产生的事件序列也相同示例:adbshellmonkey-pcom.htc.Weather-s10100--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)如:--throttle100--pct-touch:指定触摸事件的百分比,如:--pct-touch5%,相关的还有以下option:--pct-motion(滑动事件)、--pct-trackball(轨迹球事件)、--pct-nav(导航事件up/down/left/right)、--pct-majornav(主要导航事件backkey、menukey)、--pct-syskeys(系统按键事件Home、Back、startCall、endCall、volumeControl)、--pct-appswitch(activity之间的切换)、--pct-anyevent(任意事件)3、约束选项-c:activity必须至少包含一个指定的category,才能被启动,否则启动不了-p:用于约束限制,用此参数指定一个或多个包如:指定一个包:adbshellmonkey-pcom.example.sellclientapp100指定多个包:adbshellmonkey-pcom.htc.Weather-pcom.htc.pdfreader100说明:com.example.sellclientapp为包名,100是事件计数(即让monkey程序模拟100次随机用户事件)要查看设备中所有的包,在CMD窗口中执行以下命令:4、调试选项--dbg-no-events:初始化启动的activity,但是不产生任何事件。--hprof:指定该项后在事件序列发送前后会立即生成分析报告——一般建议指定该项。--ignore-crashes:忽略崩溃--ignore-timeouts:忽略超时--ignore-security-exceptions:忽略安全异常--kill-process-after-error:发生错误后直接杀掉进程--monitor-native-crashes:跟踪本地方法的崩溃问题--wait-dbg:直到连接了调试器才执行monkey测试五、Monkey测试实例(一)通过此实例,我们能理解Monkey测试的步骤以及如何判断哪些应用程序能够使用Monkey进行测试6G6%]88%%E{O9HUR4RZTF@U.png602x58013.6KB六、Monkey测试实例(二)1、前提条件:启动一个Android的模拟器打开DOS窗口,在命令行使用adbdevices查看设备是否连接?2、查看模拟器data/data文件夹的应用程序包,此目录下的应用程序包,我们都可以使用monkey进行测试,如下所示:3、可以选择一个应用程序包作为测试对象,如我们选择com.android.camera相机应用作为测试对象4、使用monkey命令执行测试monkey-pcom.android.camera-v50其中-p表示对象包,-v表示反馈信息的级别,50表示事件数量。5、在运行中,输入运行代码:monkey--pct-nav100-v500-pcom.android.alarmclock其中–pct-nav100表示全部产生基本按键事件,-p表示对象包,-v表示反馈信息的级别,500表示事件数量,执行部分结果,注意pct-nav前面是两个“-”,如下图所C:\DocumentsandSettings\9158.fengadbshellmonkey-pcom.a.a-s500--ignore-timeouts--ignore-security-exceptions--ignore-native-crashes--monitor-native-crashes-v-v-v50000C:\log.txt指令的含义:测试的应用程序为com.a.a,事件间的延时为500毫秒,三个-v表示输出的MonkeyLog的级别为最高,即输出最详尽的MonkeyLog,测试的事件次数为50000次,Log保存在C盘的log.txt代码解析如下(类似)例如:adbshellmonkey-pcom.xy.android.junit-s500--ignore-crashes--ignore-timeouts--monitor-native-crashes-v-v10000E:\monkey_log\java_monkey_log.txt说明:monkey作用的包:com.xy.android.junit产生时间序列的种子值:500忽略程序崩溃、忽略超时、监视本地程序崩溃、详细信息级别为2,产生10000个事件所产生的日志保存在:E:\monkey_log\java_monkey_log.txt注:测试产生了日志,最重要的是要学会分析日志在log中搜索4种关键字加以分析:1、crash闪退2、exception异常3、forceclosed强制退出4、anr(applicationnoresponse)程序无响应用户还可以通过monkey\sdk\tools中的monitor.bat工具进行查看包名哦!
本文标题:monkey测试精华(手把手教)
链接地址:https://www.777doc.com/doc-2888808 .html