建一个收费网站 怎么收费,温岭市建设工程质量安全网站,广告网站设计公司,95598网站服务建设Monkey是在模拟器上或设备上运行的一个小程序#xff0c;它能够产生为随机的用户事件流#xff0c;例如点击(click)#xff0c;触摸(touch)#xff0c;挥手#xff08;gestures#xff09;#xff0c;还有一系列的系统级事件。可以使用Monkey来给正在开发的程序做随机的… Monkey是在模拟器上或设备上运行的一个小程序它能够产生为随机的用户事件流例如点击(click)触摸(touch)挥手gestures还有一系列的系统级事件。可以使用Monkey来给正在开发的程序做随机的可重复的压力测试 。 Monkey基本用法 可以通过开发机器上的命令行或脚本来启动Monkey。由于Monkey运行在模拟器/设备环境中所以必须用其环境中的shell来进行启动。可以通过在每条命令前加上adb shell来达到目的也可以进入Shell后直接输入Monkey命令。基本语法如下 $ adb shell monkey[options] 如果不指定optionsMonkey将以无反馈模式启动并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例它启动指定的应用程序并向其发送500个伪随机事件 $ adb shell monkey-p your.package.name -v 500 类别 选项 说明 常规 --help 列出简单的用法。 -v 命令行的每一个-v将增加反馈信息的级别。Level 0(缺省值)除启动提示、测试完成和最终结果之外提供较少信息。Level 1提供较为详细的测试信息如逐个发送到Activity的事件。Level 2提供更加详细的设置信息如测试中被选中的或未被选中的Activity。 事件 -s seed 伪随机数生成器的seed值。如果用相同的seed值再次运行Monkey它将生成相同的事件序列。 --throttle milliseconds 在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项Monkey将不会被延迟事件将尽可能快地被产成。 --pct-touch percent 调整触摸事件的百分比(触摸事件是一个down-up事件它发生在屏幕上的某单一位置)。 --pct-motion percent 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)。 --pct-trackball percent 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成有时还伴随有点击)。 --pct-nav percent 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)。 --pct-majornav percent 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作如5-way键盘的中间按键、回退按键、菜单按键) --pct-syskeys percent 调整“系统”按键事件的百分比(这些按键通常被保留由系统使用如Home、Back、Start Call、End Call及音量控制键)。 --pct-appswitch percent 调整启动Activity的百分比。在随机间隔里Monkey将执行一个startActivity()调用作为最大程度覆盖包中全部Activity的一种方法。 --pct-anyevent percent 调整其它类型事件的百分比。它包罗了所有其它类型的事件如按键、其它不常用的设备按钮、等等。 约束限制 -p allowed-package-name 如果用此参数指定了一个或几个包Monkey将只允许系统启动这些包里的Activity。如果你的应用程序还需要访问其它包里的Activity(如选择取一个联系人)那些包也需要在此同时指定。如果不指定任何包Monkey将允许系统启动全部包里的Activity。要指定多个包需要使用多个-p选项每个-p选项只能用于一个包。 -c main-category 如果用此参数指定了一个或几个类别Monkey将只允许系统启动被这些类别中的某个类别列出的Activity。如果不指定任何类别Monkey将选择下列类别中列出的Activity Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多个类别需要使用多个-c选项每个-c选项只能用于一个类别。 调试 --dbg-no-events 设置此选项Monkey将执行初始启动进入到一个测试Activity然后不会再进一步生成事件。为了得到最佳结果把它与-v、一个或几个包约束、以及一个保持Monkey运行30秒或更长时间的非零值联合起来从而提供一个环境可以监视应用程序所调用的包之间的转换。 --hprof 设置此选项将在Monkey事件序列之前和之后立即生成profiling报告。这将会在data/misc中生成大文件(~5Mb)所以要小心使用它。 --ignore-crashes 通常当应用程序崩溃或发生任何失控异常时Monkey将停止运行。如果设置此选项Monkey将继续向系统发送事件直到计数完成。 --ignore-timeouts 通常当应用程序发生任何超时错误(如“Application Not Responding”对话框)时Monkey将停止运行。如果设置此选项Monkey将继续向系统发送事件直到计数完成。 --ignore-security-exceptions 通常当应用程序发生许可错误(如启动一个需要某些许可的Activity)时Monkey将停止运行。如果设置了此选项Monkey将继续向系统发送事件直到计数完成。 --kill-process-after-error 通常当Monkey由于一个错误而停止时出错的应用程序将继续处于运行状态。当设置了此选项时将会通知系统停止发生错误的进程。注意正常的(成功的)结束并没有停止启动的进程设备只是在结束事件之后简单地保持在最后的状态。 --monitor-native-crashes 监视并报告Android系统中本地代码的崩溃事件。如果设置了--kill-process-after-error系统将停止运行。 --wait-dbg 停止执行中的Monkey直到有调试器和它相连接。 1.Android中的应用包名(可与开发确认) com.android.browser com.android.launcher com.android.settings com.android.calculator2 com.android.contacts com.android.calendar com.android.alarmclock com.android.music 2.monkey 应用: (1)测试系统: adb shell monkey –v 10000 (2)测试应用如Browser: adb shell monkey –pcom.android.browser –v 10000 (3)提取测试结果: 1)先把结果存入模拟器或者设备的sdcard中: adb shell monkey –pcom.android.browser –v 10000 /sdcard/browser1.log exit 2)用adb 命令把log文件考到本地: adb pull/sdcard/browser1.log D:\log\ 3)用Editplus 打开.即使可看到测试结果. 3.关于-p 与-v的说明: -p:指定应用包.一个-p只能指定一个应用包,可用多个-p指定多个应用包. -v: 零个-v,得到的结果信息非常少(我测的时候,什么结果也没有) 一个-v:得到的信息稍多一些. 两个-v:得到的信息非常多. 关于-v的更具体的信息,请看上面的表格. 4.关于-s: s-------seed :种子的意思.看下面的例子: adb shell monkey –p com.android.browser–s 1 –v 1000 以上命令会得到一系列事件的模拟,如果你还想把刚刚模拟的事件原模原样地重复一遍,那么就用同样的seed 值,如果不想重复刚刚模拟的随机事件,就换一个-s 值.如果你输入下面的命令: monkey –p com.android.browser –s 2 –v 1000 你的随机事件就发生变化了.不再是原来的随机事件.缺省-s的模拟事件与上一次的相同,所以建议加上-s,以确保对随机模拟事件的控制. 5.关于--throttle 这是事件延迟参数 1)如果不加这个参数,两个事件之间不存在延迟,这样对系统的压力会比较大. 2)加上延迟,其后面接的单位是毫秒.如: adb shell monkey -pcom.android.browser -s 1 --throttle 300 -v 1000 执行以上命令之后,monkey 的两个随机事件之间要有300毫秒的延迟.至于何时用这个参数,要根据性能测试的需要. 6.关于查看结果: 1)如果一切正常.不会存在memeinfo以及 CUP 占用信息. 2)如果应用有问题,在未加其他相关参数的情况下,会在有问题的事件/应用处停止,如果涉及到mem 以及 CPU信息,则会列出此信息.在停止的位置会显示出错的事件/应用的名字.查看时应留意.(关于如何查看,仍然在调查中) 7.关于其他参数.正在调查中. 参考文章: Android自带了很多方便的测试工具和方法包括我们常用的单元测试、Robotium测试、Monkey测试、MonkeyRunner测试、senevent模拟等。这些方法对于我们编写高质量的APP十分有用。也可以提前暴露我们程序的隐藏问题。今天给大家讲一下Monkey测试Monkey测试可以说是我上面提到过的测试方法里面最简单的。 1、Monkey测试简介 Monkey主要应用在压力和可靠性测试上运行该命令可以随机地向目标程序发送各种模拟键盘事件流并且可以自己定义发送的次数以此观察被测应用程序的稳定性和可靠性应用起来也比较简单记住那几个命令就行了。 Monkey程序由Android系统自带使用Java语言写成在Android文件系统中的存放路径是/system/framework/monkey.jarMonkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行shell脚本在Android文件系统中的存放路径是/system/bin/monkey 2、Monkey的基本用法 $ adb shell monkey [options] 如果不指定optionsMonkey将以无反馈模式启动并把事件任意发送到安装在目标环境中的全部包。下面是一个常见用法的示例它启动指定的应用程序并向其发送100个伪随机事件 $ adb shell monkey -p package_name -v 100 3、Monkey测试例子 上面就是一个使用Monkey测试Launcher的例子因为对某个APP进行测试的时候需要指定APP的包名我们可以先进入data\data目录下面看看有哪些APP包。 4、Monkey测试停止条件 Monkey Test执行过程中在下列三种情况下会自动停止 如果限定了Monkey运行在一个或几个特定的包上那么它会监测试图转到其它包的操作并对其进行阻止。如果应用程序崩溃或接收到任何失控异常Monkey将停止并报错。如果应用程序产生了应用程序不响应(application not responding)的错误Monkey将会停止并报错。 5、Monkey详细参数 下面是Monkey的详细参数表图片是从CSDN一位开发者的博客上截取的。 6、结语 Monkey测试是Android自动化测试里面使用比较简单的方法可以很大程度检验我们的程序是否稳定能否经得起压力测试可以根据实际情况调整测试的强度和测试重点。这个也是我在开发APP的时候最常用的方法基本上每个版本发布之前我都会进行比较高强度的Monkey测试就像我每次发布Launcher之前都会进行1W次Monkey测试。系统集成后再进行整体的压力测试。 最后说一句Monkey测试只是一个模拟测试很多时候跟实际情况时有差别的。所以这个只能是其中一个辅助测试后面有空再讲解其他的自动化测试方法。 参考网址http://developer.android.com/tools/help/monkey.html 转载于:https://www.cnblogs.com/aikongmeng/p/3697329.html