Monkey的介绍

它是Android系统自带一个命令行工具,可以运行在模拟器里或者真是设备中运行。

Monkey是发送伪随机用户事件的工具。

Monkey向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。

通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。

monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常。当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的软件。

Monkey主要用于Android的压力测试,自动的一个压力测试小工具,主要目的就是为了测试APP是否会Crash。开发人员结合monkey 打印的日志和系统打印的日志,分析测试中的问题。

Monkey是Android SDK提供的一个命令行工具,可以简单方便的发送伪随机的用户事件流,对Android APP做压力(稳定性)测试,主要是为了测试app是否存在无响应和崩溃的情况。

Monkey是SDK中附带的一个工具。Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

Monkey包括很多选项,大致四大类:

1.基本配置选项,如设置尝试的事件数量。

2.运行约束选项,如设置只对单独的一个包进行测试。

3.事件类型和频率。

4.调试选项

Monkey命令特性

不可能使用monkey来指定做一样测试,重复做很多次。因为monkey产生的是伪随机的事件流。但是我们可以通过添加命令选项将操作限制在一定的范围内。Monkey测试,所有的事件都是随机产生的,不带任何人的主观性。

1、测试的对象仅为应用程序包,有一定的局限性。

2、Monkey测试使用的事件数据流是随机的,不能进行自定义。

3、可对Monkey测试的对象,事件数量,类型,频率等进行设置。

每台android手机里都有Monkey工具,但是我们是看不到的,因为,Monkey不是一个可视化的工具,例如手机里的微信,这是一个可视化的,能打开,有图形化界面,但是Monkey没有。

(1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;

(2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;

(3)Monkey 命令启动方式:

A)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试;

B)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试;

C)在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器。

手机里如何与Monkey进行通讯?需要借助ADB才能与Monkey进行通讯。



搭建Monkey测试环境:

第一步:安装Java JDK;

第二步:安装android SDK。

Java JDK环境变量配置

1) 新建 JAVA_HOME 环境变量

例如:

环境变量名:JAVA_HOME

变量值(安装目录):d:\Program Files\Java\jdk1.8.0_161

2)修改 path 环境变量,在path变量尾部添加%JAVA_HOME%\bin

例如:

环境变量:Path

变量值:%JAVA_HOME%\bin;

3)新建 CLASSPATH环境变量:

例如:

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar

说明:

jdk 需要配置三个环境变量;

1.5之后可以不再设置classpath,但建议保留classpath设置。

验证 java 和 javac 命令

1)打开cmd命令行窗口,输入 java ,回车执行,出现如下图显示信息。

2)输入javac 命令,回车执行



得到以上java和javac命令输出表明JDK安装配置成功。

下载Android SDK:www.android-studio.org

Andorid SDK环境配置

1、新建ANDROID_HOME系统环境变量

变量名:ANDROID_HOME

变量值:D:\Program Files\Java\Android\android-sdk

2、在系统变量名path的值添加

%ANDROID_HOME%\platform-tools 和%ANDROID_HOME%tools

命令行模式输入“adb”,出现以下界面说明配置成功。

Android 常用 adb 命令总结

针对移动端 Android 的测试, adb 命令是很重要的一个点,必须将常用的 adb 命令熟记于心, 将会为 Android 测试带来很大的方便,其中很多命令将会用于自动化测试的脚本当中。

Android Debug Bridge

adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S 架构的命令行工具,主要由 3 部分组成:

1、 运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试。

Eclipse 中的 ADT、SDK Tools 目录下的 DDMS、Monitor 等工具,都是同样地用到了 adb 的功能来与 Android 设备进行交互。

PC 端的手机助手,诸如 360 手机助手、豌豆荚、应用宝等,其除了安装第三方应用方便,其他的功能,基本上都可以通过 adb 命令去完成,这里建议测试人员尽量不要在电脑上安装这类手机助手,因为其自带的 adb 程序可能会与 Android SDK 下的 adb 程序产生冲突,5037 端口被占用,导致使用 adb 命令时无法连接到设备。

2、 运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接

adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程

3、 运行在 Android 设备上的 adb 后台进程

执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请使用 findstr 替代 grep

adb shell ps | grep adbd

root 23227 1 6672 832 ffffffff 00019bb4 S /sbin/adbd

这里注意一个地方,就是 adb 使用的端口号,5037,有必要记一下

接下来将 adb 命令分为三部分进行介绍,adb 命令、adb shell 命令、linux 命令

adb 命令

在开发或者测试的过程中,我们可以通过 adb 来管理多台设备,其一般的格式为:

adb [-e | -d | -s <设备序列号>] <子命令>

在配好环境变量的前提下,在命令窗口当中输入 adb help 或者直接输入 adb ,将会列出所有的选项说明及子命令。

Monkey 部署环境的更多相关文章

  1. 使用T4模板生成不同部署环境下的配置文件

    在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...

  2. Monkey之环境搭建完全版

    图文版将在后期补充. 如果想要搭建好Monkey的测试环境,首先几个必要的步骤和环境不能少,分别是java相关环境.Android SDK环境,启动android虚拟机或连接真机.执行monkey测试 ...

  3. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  4. 2014第2周四部署环境&买火车票

    2014第2周四部署环境&买火车票 今天遇到mysql一个问题:要把两个包含不同数据库的绿色mysql安装包中的数据库文件合并到一个数据库中,之前在sqlserver下操作很简单,只需要分离. ...

  5. Linux在高铁项目的部署环境

    因为Linux和Java像开源.所以,现在在server基本上使用部署Linux平台即server.然后部署项目.在开发项目的过程中.程序员绝大多数仍采用最经典windows操作系统,尽管Linux也 ...

  6. T4模板生成不同部署环境下的配置文件

    使用T4模板生成不同部署环境下的配置文件 在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据 ...

  7. 热部署环境下,dubbo序列化的bug和优化

    一.问题的发现与解决 (1)     在热部署下,使用dubbo的序列化一个pojo对象,反序列化时报错:ClassNotFoundException. 最后发现原因是我们的框架选择使用了java序列 ...

  8. Weblogic新建域,Weblogic新建部署环境,Weblogic重新构建域

    Weblogic新建域,Weblogic新建部署环境,Weblogic重新构建域 ======================== 蕃薯耀 2018年1月29日 http://www.cnblogs. ...

  9. Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

随机推荐

  1. NIO源码分析:SelectionKey

    SelectionKey SelectionKey,选择键,在每次通道注册到选择器上时都会创建一个SelectionKey储存在该选择器上,该SelectionKey保存了注册的通道.注册的选择器.通 ...

  2. 08flask中get和post请求。

    1,get请求. 使用场景:获取信息并没有对服务器的数据或者资源进行修改,则用get. 传参:get请求传参是放在URL中,通过"?"的形式指定键值对. 2,post请求. 使用场 ...

  3. Javascript的运行效率是原生代码的20%-30%

    所以jser们,写代码更仔细些吧. http://www.cnblogs.com/codemood/p/3213459.html

  4. TCP拥塞控制原理

    一.何为拥塞 路由器无法处理高速到达的数据而被迫丢弃数据的现象叫做拥塞. 二.何为拥塞控制 TCP流量控制时为了平衡一个链接中接收方和发送方的速度匹配问题,当发送方发现发送速度大于接收方的接收速度时动 ...

  5. Python学习笔记5:模块/包

    1.模块 模块简单理解就是一组功能的集合. 在Python中,一个文件(.py)就是一个模块,文件名即模块名. 模块的好处是大大提高代码的可维护性,其次,代码不必从零开始.当一个模块编写完毕,就可以被 ...

  6. CCF-201512-消除类游戏

    问题描述 试题编号: 201512-2 试题名称: 消除类游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游 ...

  7. FLEX弹性布局小结

    1. 弹性盒子中: flex: 0 1 auto表示什么意思 flex默认三个参数是flex-grow, flex-shrink, flex-basis,默认值是0 1 auto. flex-grow ...

  8. [LeetCode题解]109. 有序链表转换二叉搜索树 | 快慢指针 + 递归

    题目描述 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定的有序链表: ...

  9. [LeetCode题解]206. 反转链表 | 迭代 + 递归

    方法一:迭代 解题思路 遍历过程,同时反转,这里需要一个指针 pre 要保存前一个节点. 代码 /** * Definition for singly-linked list. * public cl ...

  10. 【进阶之路】Redis基础知识两篇就满足(二)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第二篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...