首页 > 代码库 > MonkeyServer的使用及自动化

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脚本自动化的过程

MonkeyServer的使用及自动化