MonkeyServer的使用及自动化

●MonkeyServer机制简介

Monkey可以在设备上启动一个服务端让客户机远程的连接到设备,对设备进行调试和控制

●MonkeyServer使用

?启动MonkeyServer

adb shell monkey --port 1080 &

?连接MonkeyServer

adb forward tcp:1080 tcp:1080 //把PC机的端口映射到设备暴露出来的端口上

telnet 127.0.0.1 1080 //通过telnet本机连接到MonkeyServer

●MonkeyServer的主要命令:

?touch [down|up|move] [x] [y]

?press[keycoe]

?sleep

?getvar(获取系统的变量)

?type (输入一些字符)

?计算器的例子

adb shell monkey --port 1080 & //启动MoneyServer

adb forward tcp:1080 tcp:1080 //把本机的1080端口映射到设备的1080端口

telnet 127.0.0.1 1080 //通过网络连接命令telnet连接本机的1080端口

打开计算器

press KEYCODE_8 //计算器自动输入8

tap 100 500 //根据坐标自动输入数字

这个例子说明通过telnet可以完成对设备的控制操作,但是怎么能够对这些操作实现自动化呢?下面介绍

●MonkeyServer命令脚本化(vbs脚本实现对telnet程序的自动化控制)

·关键脚本

set sh=WScript.CreateObject("WScript.Shell")

WScript.Sleep 1000

sh.SendKeys "open 127.0.0.1 1080 {ENTER}"

·启动命令

cscript//nologo monkeyServerRun.vbs

·计算器的例子

Text1:.vbs脚本(脚本需放在电脑本地)

set sh=WScript.CreateObject("WScript.Shell")//启动WScript.Shell

WScript.Sleep 1000

sh.SendKeys "open 127.0.0.1 1080 {ENTER}"//通过telnet打开Monkeyserver地址来访问monkeyserver

WScript.Sleep 1000

Sh.SendKeys "press KEYCODE_3 {ENTER}"

WScript.Sleep 1000

Sh.SendKeys "press KEYCODE_7 {ENTER}"

WScript.Sleep 1000

Sh.SendKeys "press KEYCODE_NUMPAD_ADD {ENTER}"

WScript.Sleep 1000

Sh.SendKeys "press KEYCODE_2 {ENTER}"

WScript.Sleep 1000

Sh.SendKeys "press KEYCODE_1 {ENTER}"

WScript.Sleep 1000

Sh.SendKeys "press KEYCODE_NUMPAD_EQUALS {ENTER}"

WScript.Sleep 1000

Sh.SendKeys "done {ENTER}"

WScript.Sleep 1000

但是monkeyserver并没有提供启动应用的操作,也就是说每次执行monkeyserver指令之前,必须先把被测应用启动起来,这个需要在脚本中有自动启动应用的操作,可以通过批处理脚本来实现。

Text2:.bat脚本(脚本需放在电脑本地)

adb forward tcp:1080 tcp:1080//做好端口映射

adb shell am start -n com.android.calculator2/com.android.calculator2.calculator//启动应用

start telnet.exe//在批处理中启动telnet应用程序

cscript //nologo monkeyServerRun.vbs//执行脚本

·执行MonkeyServer自动打开计算器并且自动计算步骤:

dir *.script 或dir //查看本地有没有text1和2两个脚本

adb shell monkey --port 1080 &

adb forward tcp:1080 tcp:1080

telnet 127.0.0.1 1080

monkeyServer.bat//执行批处理

这就完成了monkeyServer脚本自动化的过程

时间: 2024-10-05 10:23:46

MonkeyServer的使用及自动化的相关文章

通过beego快速创建一个Restful风格API项目及API文档自动化(转)

通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界面. 一.创建数据库及数据表(MySQL) #db--jeedev -- ---------------------------- -- Table structure for `app` -- ---------------------------- DROP TABLE IF EXISTS `a

C# 最佳工具集合: IDE 、分析、自动化工具等

C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言.如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理.但是,这个工具列表可能会改变您编写C#代码的方式. C#编程的最佳工具有以下几类: IDE VS扩展 编译器.编辑器和序列化 反编译和代码转换工具 构建自动化和合并工具 版本控制 测试工具和VS扩展 性能分析 APM 部署自动化 容器 使用上面的链接直接跳转到特定工具,或继续阅读以浏览完整列表.

自动化运维工具介绍

运维目标有三个阶段,第一是追求稳定性,第二是追求标准化,第三是追求自动化.对于第三阶段来说,什么是运维自动化呢?简单地讲,运维自动化就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行,而不需要人工参与.接下来简单介绍运维自动化工具,要了解运维平时用到的自动化工具,就需要了解运维人员的日常工作有哪些. 一.运维的日常工作 运维的日常工作可以总结为以下四个部分,分别是: (1) 系统安装 (2) 应用程序配置(Configuration) (3) 命令执行与控制(Command a

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

浅谈前端自动化构建

前言 现在的前端开发已经不再仅仅只是静态网页的开发了,日新月异的前端技术已经让前端代码的逻辑和交互效果越来越复杂,更加的不易于管理,模块化开发和预处理框架把项目分成若干个小模块,增加了最后发布的困难,没有一个统一的标准,让前端的项目结构千奇百怪.前端自动化构建在整个项目开发中越来越重要. 我们首先来回想一下之前我们是如何来开始做一个项目的. ① 首先要确定这个项目要使用什么样的技术来实现,然后开始规划我们的项目目录,接着就要往项目增加第三方库依赖,比如: 拷贝 CSS库(Yui Reset |

自动化安装之DHCP基本原理和配置

DHCP:(Dynamic Host Configuration Protocol) C/S架构 原理: 当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端提供自动分配IP地址的服务.当然高级的DHCP,不光只是分配地址这么简单,今天我们的课程只是架设一个普通的DHCP的服务器, client端能获取到上网必须的网络配置信息.安装了DHCP服务软件的服务器称为DHCP服务器,而启用了DHCP功能的客户机称为DHCP客户端,DHCP服务器是以地址租约的方式为DH

CMDB专家实践谈:自动化运维的基石CMDB

CMDB是什么? 运维百花齐放繁荣景象的同时,也让碎片化问题产生:每个人都想整合运维平台,但是往往事与愿违. CMDB就像一个人的大脑核心,是一个信息协调库,其存储的资料是协调身体完成各种复杂运动的信息来源. 我心中的CMDB .碎片整合 面向运维工具的碎片化场景,是盘活整个运维管理的数据核心 .元数据库 提供运维活动的基础元数据,是唯一可信的运维配置数据服务 .场景驱动 为运维联动提供数据驱动,可协调工具来完成各类自动化场景 自动扩容+自动监控 CMDB如何建设? 痛点现象与对策I模型建不好

再不自动化就晚啦!教你4步打造基于CentOS的产品镜像

随着Linux程序的增多,软件的安装过程中经常出现如下问题: 1.硬件配置类似或者相同时,批量安装系统和软件,希望实现自动化安装,减~·少安装时间和人为出错. 2.工程实施人员在不同客户现场进行系统和软件安装(硬件配置不同),由于硬件有差别,不容易实现自动化. 笔者针对以上场景,从提高生产效率,减少误操作的立场,提出如下解决方案,希望能达到抛砖引玉的目的,并能与同行进行深入的探讨,发现不足之处. 背景知识点 Anaconda是RedHat.CentOS.Fedora等Linux的安装管理程序,它

交付自动化的探索与展望

正如Kurt Bittner说的那样,如果敏捷仅仅是个开始的话,那持续交付则是头条!(我则更喜欢理解成高潮). "If Agile Was the Opening Act,Continuous Delivery is the Headliner!"--Kurt Bittner 现代企业要求软件开发过程保持最大的工作效率,传统的瀑布式开发早已跌入历史洪流,甚至敏捷宣言也已超过10年的历史,软件开发在经历了敏捷开发.持续集成后,正逐步迈入到持续交付的时代. 持续交付是持续集成的延伸,强调以