MonkeyScript常用参数及编写

来源:互联网 发布:linux图标为什么是企鹅 编辑:程序博客网 时间:2024/06/06 06:38


Monkey启动MonkeyScript的命令为:

 adbshell monkey -f <MonkeyScript> <EventCount>

需要注意的是,因为 adb shell 的运行环境是在待测试的Android设备上,所以需要将 MS脚本 push到待测试的设备上,然后再进行运行。

这里有个坑可能push不到手机上面,我是push/data/temp上面的,虽然设备是已经root过的,但是如果说拒绝访问的话,请将该文件夹的权限改了,执行命令:

chmod 777 文件夹

下面介绍一下一些常用的API,想查看完整的 API,可以选择点击下载这里http://download.csdn.net/download/lyl00ling/9972035

1:点击事件  DispatchPointer 通过对指定位置坐标信息发送单个手势消息,多用于模拟点击的操作。

DispatchPointer(long downTime,  long eventTime, int action, float x, float y, float pressure, float size, int metaState, float xPrecision, float yPrecision, int device, int edgeFlags)  

·        action:事件是按下还是抬起,0表示按下,1表示抬起。

·        xy:表示当前事件触发的X轴和Y轴的坐标

·        两个 DispatchPointer命令加在一起,分别表示按下抬起,这表示一次点击操作,其余的参数,统一设置为 0 即可。

2:按键消息 DispatchKey

DispatchKey 主要是用于发送一些Android 标准的 EventKey 按键消息。但是需要写对应的值。

DispatchKey(long downTime, long eventTime, int action, int code, int repeat, int metaState, int device, int scancode) 

具体的键值,可以通过官网查询:

https://developer.android.com/reference/android/view/KeyEvent.html

DispatchKey 消息的方法前面和DispatchPointer 一样,所以同样也只需要关注 action、x、y 三个参数即可。

3:开启关闭软键盘 DispatchFlip

DispatchFlip 命令用于打开或者关闭软键盘。它的方法签名如下:

DispatchFlip(boolean keyboardOpen) 

其中的参数,true 表示打开,false 表示关闭。

4: 打开指定的Activity   LaunchActivity

LaunchActivity 命令用于打开任意应用的一个页面,但是前提条件是打开的Activity 需要属性 android:exported 被设定为true,才可以通过 LaunchActivity 打开。它的方法签名如下:

LaunchActivity(String pkg_name, String cl_name)

它的两个参数,分别表示打开的 App 的包名和打开的 Activity 的名称。

5: 等待 UserWait

UserWait 命令用于让脚本中断执行一段时间。因为是脚本执行,多个事件之间执行的速度会非常的快,有时候我们需要等待一些事件触发之后的结果返回,需要等待一段时间之后,再继续执行脚本,这个时候就可以使用 UserWait 。

它的方法签名如下:

UserWait(long sleeptime)    

sleepTime 的单位是毫秒。

7 :输入字符串  DispatchString

DispatchString 命令用于向 Shell 输入一个字符串。

它的方法签名如下:

DispatchString( input )

没什么好解释的, input 就是一个字符串即可,但是 MS 对中文的支持并不好,所以尽量输入英文的测试数据。

8:运行 Shell 命令 RunCmd

RunCmd 命令用于在设备上运行 shell 命令。当然这些 shell 命令必须是当前待测试设备支持的 shell 命令。

它的方法签名如下:

RunCmd ( cmd )

参数 cmd 就是需要执行的 shell 命令。

9:键盘事件 DispatchPress

DispatchPress 命令用于模拟敲击键盘的事件。

它的方法签名如下:

DispatchPress( keyName )

 

那么现在进入正题,编写脚本:

下面是对一个手机自带计算器的一个小的操作的脚本,用uiautomatorviewer来获取按键坐标啊,包名啊等信息。

type= raw events

count= 10

speed= 1.0

start data >>

 

LaunchActivity(com.android.calculator2,com.android.calculator2.Calculator)

#touch 9

#按下9按钮

DispatchPointer(0,0,0,400,700,0,0,0,0,0,0,0)

#弹起按钮

DispatchPointer(0,0,1,400,700,0,0,0,0,0,0,0)

#等待1500ms

UserWait(1500)

#touch 6

#DispatchPointer(0,0,0,400,900,0,0,0,0,0,0,0)

#DispatchPointer(0,0,1,400,900,0,0,0,0,0,0,0)

DispatchPress(KEYCODE_6)

UserWait(1500)

#touch +

DispatchPress(KEYCODE_PLUS)

UserWait(1500)

#touch 7

Tap(100,700,50)

UserWait(1500)

#touch =

DispatchPointer(0,0,0,630,1100,0,0,0,0,0,0,0)

DispatchPointer(0,0,1,630,1100,0,0,0,0,0,0,0)

#DispatchPress(KEYCODE_EQUALS)

UserWait(1500)

 

#RotateScreen(2,1)屏幕翻转180°

#UserWait(1500)

 

将代码存为monkey.script,然后将数据push到手机(模拟器)设备上面,运行以下命令:

adb shell monkey -f /data/temp/monkey.script 1

此处的1表示执行脚本的次数(必须填写)

运行时候 就可以看到设备上面计算器真的按照脚本上面的代码一步一步地执行。

 

 

 

 

原创粉丝点击