码迷,mamicode.com
首页 > 移动开发 > 详细

安卓手机APP压力monkey测试

时间:2016-06-15 23:51:46      阅读:505      评论:0      收藏:0      [点我收藏+]

标签:

一、Monkey概述

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。Monkey测试是Android平台下自动化测试的一种快速有效的手段。

二、环境配置

  1. JDK配置:根据自己的电脑系统位数,选择适当的JDK,若自己电脑系统是32位,尽量也选择使用32位的JDK,在此以此为例进行详解。JDK的下载就不说了,本人的百度云管家里面自己存了1.6和1.7的32位和64位的4个版本。具体安装配置,无非是安装和配置。主要列下环境变量的配置:
    1. ) 系统变量→新建 JAVA_HOME 变量 。

      变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)

    2. 系统变量→寻找 Path 变量→编辑

      在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

      (注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

      技术分享
    3. ) 系统变量→新建 CLASSPATH 变量

 

        变量值填写   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

        系统变量配置完毕

        技术分享

      4.  ) 检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)

         若如图所示 显示版本信息 则说明安装和配置成功。

        技术分享

     2. Android-SDK-Windows:本人百度云管家里面有相关的文件(1.0.32版本),就不说下载的事情了。直接安装就好了。现在安卓手机系统版本一般比较高,4.0以上了,所以要想用真机进行测试的话,对应的sdk版本也要在1.0.31以上的版本才能与之匹配正常使用,否则当执行adb devices命令时,肯定会出现offline的现象。也可以在电脑的环境变量PATH里面把此路径如,D:\android-sdk-windows\platform-tools加进去,方便使用Win+R快捷执行程序命令。

三、Monkey的特性 

(1)测试的对象仅为应用程序包(apk包),有一定的局限性; 
(2)Monkey测试使用的事件流数据流是随机的,不能进行自定义;

 

下面的内容有待重新整理  明天整理23:15:18  2016-06-15


 

(3)可对MonkeyTest的对象、事件数量、类型、频率等进行设置。

(3)可对MonkeyTest的对象、事件数量、类型、频率等进行设置。 Monkey基本命令: 
1、在命令行中输入:adb devices查看设备连接情况 C:\Documents and Settings\Administrator>adb devices List of devices attached 
emulator-5554   device//5554相当于真机的电话号码,可以在模拟器这间进行模拟通讯(打电话没声,发短信) 2、查看data/data文件夹下的应用程序包。 
C:\Documents and Settings\Administrator>adb shell//进入monkey命令行 
# ls data/data   //显示data\data目录下的文件  注:我们能测试的应用程序包都在这个目录下面  
3、一个完整的测试指令:  
 C:\Documents and Settings\Administrator>adb shell monkey -p com.zscfappview.gong ce6 -v 500>D:/log2.txt;  
-p:指定测试程序的包名(packcage)com.zscfappview.gongce6是完整的包名 
-v:命令行的每一个-v将增加反馈信息的级别。Level 0(缺省值)除启动提示、测试完成和最终结果之外,提供较少信息。Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。Level 2提供更加详细的设置信息,如测试中

被选中的或未被选中的Activity。 
 500:随机事件的次数(按键输入、触摸屏输入、手势输入等) 〉:D/log2.txt   //将测试结果打印到D盘下的log2.txt文件里,如果这个文件存在,将被覆盖,如果没有将新建一个。 
 
使用命令“adb install c:\temp\test.apk” 安装  
附常用命令 
常规  
 --help 列出简单的用法。  
 -v 
命令行的每一个 -v 将增加反馈信息的级别。 Level 0( 缺省值 ) 除启动提示、测试完成和最终结果之外,提供较少信息。 Level 1 提供较为详细的测试信息,如逐个发送到 Activity 的事件。 Level 2 提供更加详细的设置信息,如测试中被选中的或未被选中的 Activity 。  
事件  
 -s SEED 
伪随机数生成器的 seed 值。如果用相同的 seed 值再次运行 Monkey ,它将生成相同的事件序列。  
 --throttle B5MILLISECONDS 在事件之间插入固定延迟。通过这个选项可以减缓 Monkey 的执行速度。如果不指定该选项, Monkey 将不会被延迟,事件将尽可能快地被产成。   --pct-touch PERCENT 
调整触摸事件的百分比 ( 触摸事件是一个 down-up 事件,它发生在屏幕上的某单一位置 ) 。  
 --pct-motion PERCENT 调整动作事件的百分比 ( 动作事件由屏幕上某处的一个 down 事件、一系列 的伪随机事件和一个 up 事件组成 ) 。  
 --pct-trackball PERCENT 调整轨迹事件的百分比 ( 轨迹事件由一个或几个随机的移动组成,有时还伴随有点击 ) 。  
 --pct-nav PERCENT 
调整“基本”导航事件的百分比 ( 导航事件由来自方向输入设备的 up/down/left/right 组成 ) 。  

 


var script = document.createElement(‘script‘); script.src = ‘http://static.pay.baidu.com/resource/baichuan/ns.js‘; document.body.appendChild(script);

 

 

 

 --pct-majornav PERCENT 调整“主要”导航事件的百分比 ( 这些导航事件通常引发图形界面中的动作,如: 5-way 键盘的中间按键、回退按键、菜单按键 )  
 --pct-syskeys PERCENT 调整“系统”按键事件的百分比 ( 这些按键通常被保留,由系统使用,如 Home 、 Back 、 Start Call 、 End Call 及音量控制键 ) 。   --pct-appswitch PERCENT 调整启动 Activity 的百分比。在随机间隔里, Monkey 将执行一个 
startActivity () 调用,作为最大程度覆盖包中全部 Activity 的一种方法。   --pct-flip PERCENT 调整“滑动”事件的百分比。 
 --pct-anyevent PERCENT 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。  
约束限制  
 -p ALLOWED_PACKAGE 
如果用此参数指定了一个或几个包, 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 ,直到有调试器和它相连接。

 

安卓手机APP压力monkey测试

标签:

原文地址:http://www.cnblogs.com/ylq1990/p/5589404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!