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-count

adb 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程序->uninstall

2、 在命令行中输入:adb devices查看设备连接情况

启动设备前

>adb devices

List of devices attached

emulator-5554 offline

启动设备后:

>adb devices

List of devices attached

emulator-5554 device

3、 在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面

>adb shell

4、 查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面

#ls data/data

5、 以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 测试一 Monkey 入门相关推荐

  1. Monkey测试2——Monkey测试策略

    Monkey的测试策略 一. 分类 Monkey测试针对不同的对象和不同的目的采用不同的测试方案,首先测试的对象.目的及类型如下: 测试的类型分为:应用程序的稳定性测试和压力测试 测试对象分为:单一a ...

  2. Monkey测试1——Monkey的使用

    1 Monkey工具使用 2 3 一. 什么是Monkey 4 5 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输 ...

  3. OpenCASCADE:绘制测试线束之入门

    OpenCASCADE:绘制测试线束之入门 概述 本文档的内容 入门 启动 DRAW Test Harness 插件资源文件 激活插件中实现的命令 本博文解释了如何使用Draw,Open CASCAD ...

  4. android 获取monkey日志_Android压力测试:monkey压力测试实战

    主要分享的主题是 Android App 专项测试, 通过 monkey 进行压力测试. 一.测试步骤 1.安装ADB 2.连接被测手机和电脑 3.打开CMD命令行 4.输入monkey命令 adb ...

  5. android 回归测试,android测试:monkey使用方法

    android测试:monkey使用方法 Android Sdk给我们提供了Monkey和Monkeyrunner这两个自动化测试工具. 一.什么是Monkey Monkey是一个命令行工具,可以运行 ...

  6. android驱动测试,Android: 通过 cucumber 驱动 monkey 做稳定性测试

    主要内容 稳定性测试是什么 Monkey 介绍 自动化 Monkey 稳定性测试是什么 通过随机点击屏幕一段时间,看看 app 会不会奔溃,能不能维持正常运行. Monkey 介绍 Monkey 是一 ...

  7. monkey 真机测试步骤

    1. USB调试打开 2. 获取root 权限:adb shell su 回车 3. cd /data/data 4. ls 查看应用程序 5. 开始测试:monkey -p com.sina.wei ...

  8. monkey测试_adb monkey压力测试检测安卓手机的5大步骤,你知道吗?

    一.monkey是什么 1.monkey程序由android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar 2.Mon ...

  9. 渗透测试漏洞利用入门总结

    渗透测试漏洞利用入门总结 漏洞利用 利用medusa获得远程服务的访问权限. 这些服务包括ssh.telnet.ftp.pc anywhere .vnc 对这些服务进行爆破的工具分别是medusa 和 ...

最新文章

  1. Linux下ntpdate时间同步
  2. 手机内存8+128与6+256价格相同,你会选哪个?
  3. 使用MemCache进行相关缓存的保存处理
  4. 冒泡排序(一分钟懂)
  5. 带后台管理的超酷jquery+ajax幻灯相册php源码,js幻灯片轮播代码_js源码_js鼠标滚动翻页...
  6. SQL Server 2008 下载及版本说明
  7. 3D游戏建模学习有哪些书?自学难不难?能学成就业吗
  8. HTML5期末大作业:商城网站设计——仿天猫商城(9页) HTML+CSS大作业: 网页制作作业_疫情防控网页设计...
  9. matlab无法打开wps的xls文件,wps表格无法打开xls文件相关解决方法
  10. Android P Asan使用总结
  11. Java8新特性stream流的优雅操作
  12. 2021年三季度中国医疗服务行业A股上市企业营收排行榜:国际医学于1月17日起戴帽,简称变更为“ST国医”(附热榜TOP37详单)
  13. Excel技巧之引用其他工作表数据
  14. springboot整合sse
  15. 极客时间和极客学院_极客拔掉
  16. 无限位小写金额转换大写金额(修订版)
  17. 椭圆 —— 从理论推导到最小二乘法拟合
  18. rosbridge-suite安装教程和下载安装失败的问题解决
  19. LOTO示波器如何测试阻抗的频响曲线
  20. mac下smartsvn安装与破解

热门文章

  1. (五)Selenium自动化测试实战—PO模式
  2. hsf端口_hsf配置
  3. VMware Workstation 不可恢复错误: (svga) Exception 0xc000001d has occurred.(Ubuntu 之 atom 安装可能遇到的问题)
  4. 01.02 Spring IOC
  5. 2023年SCI期刊最新影响因子发布Excel完整版下载(亲测可下载)
  6. windows10使用4G模块上网
  7. 魔灵召唤不显示服务器,魔灵召唤: 天空之役无法连接服务器如何解决
  8. 清明上河图(洞箫演奏)铃声 清明上河图(洞箫演奏)手机铃声...
  9. 浅谈Python中的类型转换
  10. 或许GitHub最好的选择真的是微软