Monkey 测试一 Monkey 入门
来源:互联网 发布:南充广电网络客服电话 编辑:程序博客网 时间:2024/05/16 06:05
Monkey 测试一 Monkey 入门
android SDK里自带的现成的测试工具有monkey 和 monkeyrunner两个。总的来说,monkey主要应用在压力和可靠性测试上,运行该命令可以随机地向目标程序发送各种模拟键盘事件流,并且可以自己定义发送的次数,以此观察被测应用程序的稳定性和可靠性,应用起来也比较简单,记住那几个命令就行了。monkeyrunner呢,相比之下会强大一些,它主要可应用于功能测试,回归测试,并且可以自定义测试扩展,灵活性较强,并且测试人员可以完全控制。
SDK的配置
在系统中增加环境变量ANDROID_SDK_HOME
,设置为SDK的安装位置.
新建一个Path变量,变量值方框里输入;%ANDROID_SDK_HOME%\platform-tools;%ANDROID_SDK_HOME%\tools;
设置完毕后,在cmd中输入adb,能够出来提示,就说明配置正确了。
添加AVD
在eclipse中的Android Virtual Device Manager中,新建一个设备,名字命名为 xxx。 则使用
emulator @xxx
或者
emulator -avd xxx
均可以启动虚拟设备。
使用mokey进行可靠性测试
adb shell monkey [options] event-countadb shell monkey -p your.package.name -v -v -v 1000 > monkey.text
-v为verbose的缩写,就是详细输出事件的等级,
真实使用例子:
adb shell monkey -p com.tmall.wireless --throttle 500 -v -v -v 1000000 > d:\monkey.log & adb logcat -v time >d:\logcat.log
monkey测试实例
通过这个实例,我们能理解Monkey测试的步骤以及如何知道哪些应用程序能够用Monkey进行测试。
Windows下(注:2—4步是为了查看我们可以测试哪些应用程序包,可省略):
1、 通过eclipse启动一个Android的emulator,或者使用 emulator xxx命令启动模拟器。如果直接使用emulator命令启动,需要安装apk包如下(eclipse中在项目视图的项目名称上选择run as android project自动装好了)>adb install apkfile #先CD到apk所在的目录安装apk.如果需要覆盖安装,使用 -r命令>adb install -r apkfile 附注,删除: 方法一 >adb uninstall com.xxx.xxx 方法二 >adb shell #cd data/app rm ***.app 方法三 模拟器的setting->applications->manage applications->xxx程序->uninstall2、 在命令行中输入:adb devices查看设备连接情况启动设备前>adb devicesList of devices attachedemulator-5554 offline启动设备后:>adb devicesList of devices attachedemulator-5554 device3、 在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面>adb shell4、 查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面#ls data/data5、 以com.android.calculator2作为对象进行MonkeyTest#monkey -p com.android.calculator2 -v 500其中-p表示对象包 –v 表示事件数量运行过程中,Emulator中的应用程序在不断地切换画面。
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
Monkey Test执行过程中在下列三种情况下会自动停止:
1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。3、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。
通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序。
Monkey测试注意事项
用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。但是要求测试的起始位置相同,比如起始位置为桌面或者为某一个Activity的某一个状态
Monkey命令参数
1) 参数: -p
参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,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 100
说明:Monkey随机启动APP并发送100个随机事件。
要查看设备中所有的包,在CMD窗口中执行以下命令:
>adb shell #cd data/data#ls
2) 参数: -v
用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:
日志级别 Level 0
adb shell monkey -p com.htc.Weather –v 100
说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息
日志级别 Level 1
adb shell monkey -p com.htc.Weather –v -v 100
说明 提供较为详细的日志,包括每个发送到Activity的事件信息
日志级别 Level 2
adb shell monkey -p com.htc.Weather –v -v –v 100
说明 最详细的日志,包括了测试中选中/未选中的Activity信息
3)参数: -s
用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
示例:
Monkey测试1:adb shell monkey -p com.htc.Weather –s 10 100 Monkey 测试2:adb shell monkey -p com.htc.Weather –s 10 100
两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽 然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;
4) 参数: --throttle <毫秒>
用于指定用户操作(即事件)间的时延,单位是毫秒;
示例:
adb shell monkey -p com.htc.Weather –throttle 3000 100
5) 参数: --ignore-crashes
用于指定当应用程序崩溃时(Force & Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。
示例:
adb shell monkey -p com.htc.Weather --ignore-crashes 1000
测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;
6) 参数: --ignore-timeouts
用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。
7) 参数: --ignore-security-exceptions
用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。
8) 参数: --kill-process-after-error
用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。
9) 参数: --monitor-native-crashes
用于指定是否监视并报告应用程序发生崩溃的本地代码。
10) 参数: --pct-{+事件类别} {+事件类别百分比}
用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)
--pct-touch 触摸事件(down-up事件) --pct-motion 动作事件(由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)--pct-trackball 轨迹事件(由一个或几个随机的移动组成,有时还伴随有点击)--pct-majornav 调整“主要”导航事件的百分比(导航事件通常引发图形界面中的动作,如:中间按键、回退按键、菜单按键)--pct-syskeys 整“系统”按键事件的百分比(通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)--pct-appswitch 调整启动Activity的百分比--pct-anyevent 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等
注意:各事件类型的百分比总数不能超过100%
adb shell monkey -p com.htc.Weather --pct-anyevent 50 --pct-appswitch 50 1000
- Monkey 测试一 Monkey 入门
- Android Monkey测试入门
- Android Monkey测试入门
- Monkey测试系列:1. Monkey入门
- Monkey测试(一)
- Monkey测试log分析一
- monkey压力测试(一)
- Android Monkey 压力测试一
- Monkey测试
- monkey测试
- Monkey 测试
- Monkey 测试
- monkey测试
- monkey测试
- Monkey测试
- Monkey测试
- Monkey 测试
- monkey 测试
- 你好吗,朋友
- php——学习笔记,printf输出字符串格式参数
- openstack(H)中neutron的配置和使用
- js数组元素去重
- 误删的工作文件该怎么恢复
- Monkey 测试一 Monkey 入门
- 多核DSP硬件信号量相关说明
- 单线程环境中对象大小固定的内存池
- 【VBA研究】VBA通过HTTP协议实现邮件轨迹跟踪查询
- 吝啬的国度
- 设置Eclipse中的tab键为4个空格的完整方法
- shiro SpringMvc Hibernate 入门
- Android项目名上黄色叹号提示解决方案
- 黑马程序员17.File&Properties