我们通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。首先,我们准备了一个有bug的项目CityWeather;通过测试这个项目(源码在附件文件夹中),我们来理解Monkey测试的步骤以及如何知道哪些应用程序能够用Monkey进行测试。Windows环境下(注:2—4步是为了查看我们可以测试哪些应用程序包,可省略):

1、通过eclipse启动Android项目WhoisSinger;

2、在命令行中输入:adb devices 查看设备连接情况,如下图所示:

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

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

5、以local作为对象进行MonkeyTest

#monkey -p local -v 500

其中-p表示对象包,local 表示你需要测试的包名, –v 表示反馈信息级别运行过程中,WhoisSinger工程在不断地切换画面。按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。

6、首先,我们创建monkey.txt文件,然后将测试结果导出到monkey.txt文件夹,

# monkey -p kedi songs -v 200 >monkey.txt

7、分析测试结果

//伪随机种子为1492145723765,事件总数为200

:Monkey: seed=1492145723765 count=200

:AllowPackage: com.kedi.songs//包名

:IncludeCategory: android.intent.category.LAUNCHER//包含的类别

:IncludeCategory: android.intent.category.MONKEY

//各种事件所占的比例

// Event percentages:

//   0: 15.0%

//   1: 10.0%

//   2: 2.0%

//   3: 15.0%

//   4: -0.0%

//   5: 25.0%

//   6: 15.0%

//   7: 2.0%

//   8: 2.0%

//   9: 1.0%

//   10: 13.0%

:Switch:

//表示跳转到com.kedi.songs里面的MainActivity这一个Activity里。

#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.kedi.songs/.MainActivity;end

//允许此Intent跳转   

// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.kedi.songs/.MainActivity } in package com.kedi.songs

//发送的一些动作,如点击按下,点击放开,移动

:Sending Touch (ACTION_DOWN): 0:(88.0,993.0)

:Sending Touch (ACTION_UP): 0:(105.03915,1001.184)

:Sending Trackball (ACTION_MOVE): 0:(4.0,3.0)

:Sending Touch (ACTION_DOWN): 0:(408.0,781.0)

:Sending Touch (ACTION_UP): 0:(415.41663,780.68005)

:Sending Touch (ACTION_DOWN): 0:(218.0,758.0)

:Sending Touch (ACTION_UP): 0:(215.02052,758.3537)

:Sending Touch (ACTION_DOWN): 0:(419.0,95.0)

:Sending Touch (ACTION_UP): 0:(413.2224,94.99081)

:Sending Touch (ACTION_DOWN): 0:(740.0,642.0)

:Sending Touch (ACTION_UP): 0:(659.1589,553.72363)

:Sending Touch (ACTION_DOWN): 0:(236.0,290.0)

:Sending Touch (ACTION_UP): 0:(246.88383,289.21118)

:Sending Touch (ACTION_DOWN): 0:(186.0,504.0)

:Sending Touch (ACTION_UP): 0:(192.02328,495.53183)

:Sending Touch (ACTION_DOWN): 0:(753.0,126.0)

:Sending Touch (ACTION_UP): 0:(768.0,67.10371)

:Sending Touch (ACTION_DOWN): 0:(633.0,298.0)

:Sending Touch (ACTION_UP): 0:(633.8099,293.15222)

:Sending Touch (ACTION_DOWN): 0:(49.0,899.0)

:Sending Touch (ACTION_UP): 0:(21.048468,958.5391)

:Sending Touch (ACTION_DOWN): 0:(111.0,219.0)

:Sending Touch (ACTION_UP): 0:(111.975845,239.48457)

:Sending Touch (ACTION_DOWN): 0:(626.0,1071.0)

:Sending Touch (ACTION_UP): 0:(610.2667,1112.3813)

:Sending Touch (ACTION_DOWN): 0:(165.0,817.0)

:Sending Touch (ACTION_UP): 0:(153.39474,810.34625)

:Sending Trackball (ACTION_MOVE): 0:(2.0,-2.0)

//[calendar_time:2017-03-29 01:51:38.685  system_uptime:755242]

// Sending event #100

//继续发送动作

:Sending Touch (ACTION_DOWN): 0:(32.0,71.0)

:Sending Touch (ACTION_UP): 0:(37.523315,75.30026)

:Sending Touch (ACTION_DOWN): 0:(442.0,421.0)

:Sending Touch (ACTION_UP): 0:(441.8704,413.11942)

:Sending Trackball (ACTION_MOVE): 0:(4.0,-3.0)

:Sending Trackball (ACTION_MOVE): 0:(-4.0,3.0)

:Sending Touch (ACTION_DOWN): 0:(745.0,204.0)

:Sending Touch (ACTION_UP): 0:(740.33636,202.39874)

:Sending Trackball (ACTION_MOVE): 0:(-3.0,-3.0)

:Sending Touch (ACTION_DOWN): 0:(325.0,402.0)

:Sending Touch (ACTION_UP): 0:(257.38608,525.6119)

:Sending Touch (ACTION_DOWN): 0:(442.0,139.0)

:Sending Touch (ACTION_UP): 0:(427.31436,146.27611)

:Sending Trackball (ACTION_MOVE): 0:(4.0,0.0)

:Sending Touch (ACTION_DOWN): 0:(552.0,491.0)

:Sending Touch (ACTION_UP): 0:(557.97705,487.98703)

:Sending Trackball (ACTION_MOVE): 0:(-1.0,-4.0)

//注入事件200

Events injected: 200

//发送屏幕翻转 度=0,存留=

:Sending rotation degree=0, persist=false

//丢弃的:键=0,指针=0,轨迹球=0,翻转=0。

:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0

//网络统计经过时间为9046ms(0ms是用在手机上的,9046ms是用于无线网络,没有连接的时间为0ms)。

## Network stats: elapsed time=9046ms (0ms mobile, 9046ms wifi, 0ms not connected)

//测试完成

// Monkey finished

从上述例子中可以看出,该程序在这次测试中没有什么问题,若程序出现问题终端将打印出异常供程序员查找错误。

monkey测试样例的更多相关文章

  1. day-18 滑动平均模型测试样例

    为了使训练模型在测试数据上有更好的效果,可以引入一种新的方法:滑动平均模型.通过维护一个影子变量,来代替最终训练参数,进行训练模型的验证. 在tensorflow中提供了ExponentialMovi ...

  2. linux可靠信号和非可靠信号测试样例

    不可靠信号(在执行自定义函数其间会丢失同类信号) 可靠信号(在执行自定义函数其间不会丢失同类信号) 不可靠信号用一次以后,就恢复其默认处理吗? 至少在ubuntu 12.04上,已经是一次绑定,永远使 ...

  3. django中的view测试和models测试样例

    感觉用model_mommy比factory_boy要好些. 如果Models.py如下: from django.db import models from django.contrib.auth. ...

  4. tesseract 测试样例

    该图片的链接为https://raw.githubusercontent.com/Python3WebSpider/TestTess/master/image.png,可以直接保存或下载. 首先用命令 ...

  5. Spring Junit 测试样例

    SpringMVC 框架下的junit测试方式 package com.sixeco.user.controller; import org.apache.logging.log4j.LogManag ...

  6. JAVA之StringBuffer测试样码

    这类操作大同小异,但是,高手却能从String,StringBuilder,StringBuffer的应用场景和性能上,分析出其在JAVA编译和JVM上的实现过程差别. 我在CSDN上就看到一个高手分 ...

  7. PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)

    1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...

  8. 请编写一个方法,返回某集合的所有非空子集。 给定一个int数组A和数组的大小int n,请返回A的所有非空子集。保证A的元素个数小于等于20,且元素互异。各子集内部从大到小排序,子集之间字典逆序排序,见样例。

    题解:观察测试样例,会发现每个子集的选择规律与二进制((2^n) - 1)到 1 的顺序生成的规律是一致的,样例中n=3,2^n-1=7,用二进制表示为111,其中每一位的1表示数组中的三个数都选择. ...

  9. Swift - 反射(Reflection)的介绍与使用样例(附KVC介绍)

    1,反射(Reflection) 对于C#.Java开发人员来说,肯定都对反射这个概念相当熟悉.所谓反射就是可以动态获取类型.成员信息,同时在运行时(而非编译时)可以动态调用任意方法.属性等行为的特性 ...

随机推荐

  1. JEECG3.8 全套实战视频全部开放,免费下载!

    JEECG快速开发平台V3.8版本自去年10月份发布以来,下载使用数屡创新高,并受到众多开发者积极反馈.为帮助更多初学者能够快速上手,JEECG V3.8版本实战教程现已全面开放,免费下载!本教程深入 ...

  2. Git综合使用命令行和gui工具小结

    使用Git的时候,综合使用命令行和gui工具,可以把Git用的最舒服,因此这里总结下使用gui和命令行的一些对应操作, gui中拉取:git pull origin dev_branch gui中推送 ...

  3. 统计不同渠道的的UV,再合计渠道总计UV

    ( SELECT `统计时间`, `贷款公司名称`, `推广员姓名`, UV FROM ac_statistics WHERE `贷款公司名称` = "金腰袋" AND `统计时间 ...

  4. BASH_SOURCE

    在C/C++中,__FUNCTION__常量记录当前函数的名称.有时候,在日志输出的时候包含这些信息是非常有用的.而在Bash中,同样有这样一个常量FUNCNAME,但是有一点区别是,它是一个数组而非 ...

  5. Game Engine Architecture 7

    [Game Engine Architecture 7] 1.SRT Transformations When a quaternion is combined with a translation ...

  6. EOS源码

    [EOS源码] 1.在 libraries/chain/include/eosio/chain/ 目录下. permission_level 定义如下:   account_name.permissi ...

  7. woff/woff2字体404找不到

    每次控制台都报这个错,很纳闷,服务器上明明放了字体文件,怎么找不到呢 今天突然想起来,IIS的MIME类型要配置一下 之前部署网站,一个链接下载app的时候,IIS就不识别apk格式的文件,尽管服务器 ...

  8. jQuery取得radio的值 取select得值

    获取一组单选按钮对象: var obj_payPlatform = $('#wrap input[name="payMethod"]'); 获取被选中按钮的值 : var val_ ...

  9. 企业BGP网络规划案例(四)

    关于路由的发布和接收使用route-map过滤,防止本AS作为一个转发区域. 在XRV3上和XRV4上使用prefix-list 进行路由接搜和发布的过滤 XRV3配置 =============== ...

  10. 重启虚拟机后dhclient进程未运行解决办法

    问题分析 重启虚拟机后,dhclient进程未运行的根因通常为: 1.NetworkManager未开启自启动导致的dhclient进程未运行 2.网卡设置未纳入NetworkManager管理导致的 ...