前一篇文章介绍了Monkey的API函数内容,这篇文章介绍windows环境下Monkey的基本使用方法。

由于博客园年底才能完成对markdown解析的升级,可移步我的个人博客查看此文,已获得更好的交互体验:persistz的个人博客

  Monkey的使用是和adb (Android Debug Bridge) 联系在一起的,本文的环境为Android Studio 2.2.2,adb的目录默认为:

  > C:\Users\Yourname\AppData\Local\Android\sdk\platform-tools

  1. 使用cd命令进入adb文件所在目录,或者将其目录加入系统环境变量。

  2. 使用adb devices查看当前连接设备。

    adb devices

  1. 查看包名list

    adb shell pm list packages

    找到待测package name,这里使用android.zhibo8进行测试

  2. 输入测试monkey命令,这里的命令输入可以参考API进行.本次测试中,我们输入:

    adb shell monkey –p android.zhibo8 –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 10

    点击回车,测试记录会在我们的命令行界面中实时显示:

  3. 分析测试报告:

分析测试报告时,需要注意以下内容。

​ 注意报告中的seed值:我们刚才执行monkey时,没有指定seed,在报告一开始,可以看到其自动生成的seed值,见下图红色部分。如果我们指定了seed,则可以使用相同的seed来生成相同的序列。

​ 注意查找日志中的无响应问题和崩溃问题。无响应问题可以在日志中搜索 “ANR” ,崩溃问题搜索 “CRASH” ,内存泄露问题搜索"GC"(需进一步分析),异常问题搜索 “Exception”(如果出现空指针, NullPointerException,需格外重视)。

​ 为了进一步分析问题的来源,可以找到Log中出现问题处的前一次Switch,随后根据Log主要是查看相关的Activity,下面的Log执行的就是LaunchActivity。

Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=android.zhibo8/.ui.contollers.main.LaunchActivity;end

补充问题

  1. 如何将测试报告记录在本地:

将命令改为

adb shell monkey –p android.zhibo8 –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 10 >c:\monkeylog.txt

待Monkey运行结束后,会在指定目录下生成指定文件。

  1. Event percentage分析:

在上述过程中,使用了percent相关命令控制了事件类型,如果我们不指定事件类型。生成的报告中,事件占比大致如下:

// 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%

这里将事件分为了10种类型,分别为:

0:触摸事件百分比,即参数--pct-touch

1:滑动事件百分比,即参数--pct-motion

2:缩放事件百分比,即参数--pct-pinchzoom

3:轨迹球事件百分比,即参数--pct-trackball

4:屏幕旋转事件百分比,

5:基本导航事件百分比,即参数--pct-nav

6:主要导航事件百分比,即参数--pct-majornav

7:系统事件百分比,即参数--pct-syskeys

8:Activity启动事件百分比,即参数--pct-appswitch

9:键盘翻转事件百分比,即参数--pct-flip

10:其他事件百分比,即参数--pct-anyevent

更为具体的类型信息,可以查看查看Monkey源码中的MonkeySourceRandom.java文件。

参考文档

http://www.cnblogs.com/TankXiao/p/4815134.html

https://www.douban.com/note/257030241/

http://blog.csdn.net/u011649536/article/details/49448107

http://blog.csdn.net/jlminghui/article/details/42268187

Monkey基本使用流程及测试报告分析的更多相关文章

  1. 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)

    java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写     一.流程步骤         1.执行流程           当手机端app(就是你公司开发的app)在支付 ...

  2. okhttp同步请求流程和源码分析

    在上一次[http://www.cnblogs.com/webor2006/p/8022808.html]中已经对okhttp的同步与异步请求的基本使用有了一了初步了解,这次来从源码的角度来分析一下同 ...

  3. MindStudio模型训练场景精度比对全流程和结果分析

    摘要:MindStudio是一套基于华为昇腾AI处理器开发的AI全栈开发平台 本文分享自华为云社区<MindStudio模型训练场景精度比对全流程和结果分析>,作者:yd_24730208 ...

  4. monkey及其的日志管理和分析

    1.   monkey 1.1.  介绍 通过monkey程序模拟用户触摸屏幕,滑动Trackball.按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,检查和评估被测程序的稳定性 ...

  5. 【Java基础】Java类的加载和对象创建流程的详细分析

    相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下. 实例问题 实例代码 Parent类 package ...

  6. Java类的加载和对象创建流程的详细分析

    相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下: package com.test; public ...

  7. Monkey测试log的保存与分析

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  8. android adb 流程原理代码分析(一)

    由于要用到adb的知识,但是对adb啥也不了解,看了下android的代码,adb的源码在system/core/adb下面,然后网上搜下了资料,发现很多大神的源码分析,瞬间信心爆棚,把大神写的博客都 ...

  9. springMvc的执行流程(源码分析)

    1.在springMvc中负责处理请求的类为DispatcherServlet,这个类与我们传统的Servlet是一样的.我们来看看它的继承图 2. 我们发现DispatcherServlet也继承了 ...

随机推荐

  1. 01.JavaScript 面向对象精要--原始类型和引用类型

    一.什么是类型 JavaScript 虽然没有类的概念.但依然存在两种类型:原始类型和应用类型. 原始类型保存为简单的数据值,引用类型则保存为对象,其本质是指向内存位置 的引用.也就是说:原始值被直接 ...

  2. ROS学习笔记(六)——创建、编译包

    $ cd ~/catkin_ws #如果新开一个终端,就需要先吧ROS的工作空间配置好 $ source devel/setup.bash #工作空间的环境配置 #正式开始创建包 $ catkin_c ...

  3. 用js生成PDF的方案

    在java里,我们常用Itext来生成pdf,在pdf文件里组合图片,文字,画表格,画线等操作,还会遇到中文支持的问题. 那好,现在想直接在web前端就生成pdf怎么办,目前有以下几个解决方案 1:J ...

  4. iOS CommonCrypto 对称加密 AES ecb,cbc

    CommonCrypto 为苹果提供的系统加密接口,支持iOS 和 mac 开发: 不仅限于AES加密,提供的接口还支持其他DES,3DES,RC4,BLOWFISH等算法, 本文章主要讨论AES在i ...

  5. flume原理及代码实现

    转载标明出处:http://www.cnblogs.com/adealjason/p/6240122.html 最近想玩一下流计算,先看了flume的实现原理及源码 源码可以去apache 官网下载 ...

  6. JAVA开发错误总结(仅记录遇到的错误---后续不断更新......)

    =======华丽分割线(工具总结)===================== 1:Maven项目中junit测试找不到主类的问题 Class not found com.test.utils.tes ...

  7. Centos系统下Lamp环境的快速搭建

    首先为了搭建一个稳定的lamp的练习环境,确保你的虚拟机可以连网,这里我们使用的yum安装,它可以帮助我们解决软件自己的依赖关系.我还在后面加了postgresql数据库如果不需要的话可以去掉和pos ...

  8. Asp.net有关GridView的使用

    一.带提示语句的删除 二.使用config里面的连接字符串 三.鼠标移到GridView某一行时改变该行的背景色方法 四.两个事件 五.GridView实现自动编号 不难写

  9. js中getBoundingClientRect的作用及兼容方案

    js中getBoundingClientRect的作用及兼容方案 1.getBoundingClientRect的作用 getBoundingClientRect用于获取某个html元素相对于视窗的位 ...

  10. mysql数据库的导入导出

    当我们在操作数据库的时候,难免会遇到数据导入导出的一些操作,今天突然学到了这个知识点,特意来给大家分享. 我用的是data的这条数据 1.使用数据 mysql> use data; Databa ...