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. laravel 多表字段关联查询

    public function items() { return $this->belongsToMany('App\Model\Cz\CzCourse', 'cz_picture_course ...

  2. python_socket_tcp_文件传输

    server.py import json import struct import socket # 接收 sk = socket.socket() # sk.bind(('127.0.0.1',9 ...

  3. Mockserver之Moco框架搭建使用

    客户要求进行完整的产品展示,人员和时间都有限,来不及开发后端服务... 工期比较紧的项目,前端已开发完成,需要调试,后端接口还未开发完成... 公司某个项目依赖于第三方服务,但是第三方服务不方便频繁调 ...

  4. mdp文件-Chapter4-MD.mdp

    终于到了mdp系列的第四篇,最终MD模拟的mdp文件 先上代码,md.mdp 1 title = OPLS Lysozyme MD simulation 2 ; Run parameters 3 in ...

  5. nginx&http 第四章 ngx http代理 && 转载

    Nginx访问上游服务器的流程大致分以下几个阶段:启动upstream.连接上游服务器.向上游发送请求.接收上游响应(包头/包体).结束请求. upstream相关的两个重要数据结构ngx_http_ ...

  6. UNP——第六章,多路转接IO——select

    int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); ...

  7. MYSQL学习(三) --索引详解

    创建高性能索引 (一)索引简介 索引的定义 索引,在数据结构的查找那部分知识中有专门的定义.就是把关键字和它对应的记录关联起来的过程.索引由若干个索引项组成.每个索引项至少包含两部分内容.关键字和关键 ...

  8. Python_网络编程_socket()

    什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. 详细资 ...

  9. JVM简单入门

    目录 初识JVM 双亲委派机制 沙箱安全机制 Native PC计数器 方法区 栈 堆 工具分析OOM GC算法 GC算法总结 JMM 初识JVM JVM的位置:jre中包含jvm. 双亲委派机制 双 ...

  10. Python相比其他计算机语言真的更有优势吗?

    要了解Python相比其他计算机语言,首先要了解Python语言的特点 Python语言的特点 一.简单易学.明确优雅.开发速度快 ①简单易学:与 C 和 Java 比,Python的学习成本和难度曲 ...