安卓手机APP压力monkey测试
Posted 千里之行,始于足下
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓手机APP压力monkey测试相关的知识,希望对你有一定的参考价值。
一、Monkey概述
Monkey是android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。Monkey测试是Android平台下自动化测试的一种快速有效的手段。
二、环境配置
- JDK配置:根据自己的电脑系统位数,选择适当的JDK,若自己电脑系统是32位,尽量也选择使用32位的JDK,在此以此为例进行详解。JDK的下载就不说了,本人的百度云管家里面自己存了1.6和1.7的32位和64位的4个版本。具体安装配置,无非是安装和配置。主要列下环境变量的配置:
-
) 系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)
-
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
-
) 系统变量→新建 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测试的主要内容,如果未能解决你的问题,请参考以下文章