monkey命令

monkey 命令

monkey不单只能做稳定性测试,还可以用来进行自动化测试,不过,因其提供的命令比较少,而且是通过屏幕分辨率进行定位元素,所以,monkey编写的自动化测试脚本的兼容性不是很好,也就是说,如果在同一个屏幕分辨率下,可以正常运行。

但是,如果换一个分辨率的设备,有可能导致定位不到之前的元素,因为,坐标位置发生了改变。下面是一下,monkey做自动化测试脚本开发时要用到的常用命令:

DispatchPointer 命令

该命令用于向一个坐标点(x坐标,y坐标)发送手势消息

命令格式: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);

参数介绍:

downTime:表示键最初被按下的时间

eventTime:表示事件发生的时间

action:表示发送消息的类型;0(按下),1(抬起),2(移动)

x:表示x坐标轴

y:表示y坐标轴

pressure:表示当前事件的压力,0(根本没有压力),1(正常压力)

size:表示触摸的近似值,范围0~1.

metaState:表示当前按下的meta键的标识,meta键指的是ALT, SHIFT, CAPS_LOCK

xPrecision:表示X坐标精确值

yPrecision:表示y坐标精确值

device:表示事件来源

edgeFlags:表示边缘的指示,如果有的话,在该位置触发位移事件

通常,我们只需要设置前5个关键参数,其他的几个参数可以设置为0.

 格式:

DispatchPointer(0,0,0,x,y,0,0,0,0,0,0,0)  按下操作,坐标点(x,y)

DispatchPointer(0,0,1,x,y,0,0,0,0,0,0,0) 抬起操作,坐标点(x,y)

DispatchPointer(0,0,2,x,y,0,0,0,0,0,0,0) 移动操作,坐标点(x,y)

例子:

DispatchPointer(0,0,0,100,236,0,0,0,0,0,0,0)

DispatchPointer(0,0,2,100,685,0,0,0,0,0,0,0)

DispatchPointer(0,0,1,100,685,0,0,0,0,0,0,0)

表示按下坐标(100,236)移动到坐标(100,685)然后抬起操作

 

DispatchTrackball命令

该命令用于向一个坐标点发送跟踪消息

命令格式:DispatchTrackball(long downTime,long eventTime,iint action,float x,float y,float presure,float size,int metaState ,float xPrecision ,float yPrecision, int device,int edgeFlags)

该命令的使用和参数运用于DispatchPointer是一样

 

DispatchKey 命令

该命令用于发送按键消息给指定的设备或者模拟器

命令格式:DispatchKey(long downTime, long eventTime, int action,int code,int repeat, int metaState,int device,int scancode)

DispatchKey(0,0,0,29,0,0,0,0)

DispatchKey(0,0,1,29,0,0,0,0)

code值为29,表示“KEYCODE_a”,意思是按下a键,然后抬起,也就是:输入字母a,也可以换种方法写:

DispatchPress(KEYCODE_a)   这两个的效果是一样的

 

DispatchFlip命令

该命令用于打开或关闭软盘

命令格式:DispatchFlip(booleam keyboardOpen)

当keyboardOpen的指为true时,表示打开软盘,为false时,表示为关闭软盘

 

LaunchActivity命令

该命令用于启动任意引用的一个活动界面

命令格式:LaunchActivity(String pkg_name , String cl_name)

参数介绍:

pkg_name:是要启动的应用包名

cl_name:是要启动的活动名称

LaunchActivity(com.test.app,com.test.swh.activity.WelcomeActivity)

表示启动com.test.app包中的com.pttz.swh.activity.WelcomeActivity应用活动

 

LaunchInstrumentation 命令

该命令用于运行一个仪表盘测试用例

命令格式:LaunchInstrumentation(test_name,runner_name)

参数介绍:test_name为要运行的测试用例名称,runner_name为运行测试用例的类名

 

UserWait 命令

该命令用于让脚步等待一段时间

命令格式:UserWait(long sleeping)

sleeping单位为毫秒

UserWait(5000)表示等待5秒

 

RunCmd 命令

该命令用于在设备上运行shell命令

命令格式:RunCmd(cmd)

参数介绍:cmd为要执行的shell命令

 

Tap 命令

该命令用于模拟一次手指单击事件

命令格式:Tap(x,y,tapDuration)

参数介绍:x,y为坐标的横纵坐标值,tapDuration为可选项,表示单击的持续时间

 

ProfileWait 命令

该命令用于等待5秒钟

命令格式:ProfileWait()

 

DeviceWakeUp 命令

该命令用于唤醒设备并解锁

命令格式:DeviceWakeUp()

 

DispatchString 命令

该命令用于向shell输入一个字符串

命令格式:DispatchString(input)

参数介绍:input为要输入的字符串内容

DispatchString(hello)

 

 

示例脚本:

type=raw events
count=100
speed=1.0
start data >>

LaunchActivity(com.test.aqb,com.test.swh.activity.WelcomeActivity)
UserWait(3000)

//启动app后等待3秒

DispatchPointer(0,0,0,30,1050,0,0,0,0,0,0,0)
DispatchPointer(0,0,1,30,1050,0,0,0,0,0,0,0)

//点击输入框

DispatchPress(KEYCODE_h)
DispatchPress(KEYCODE_o)
DispatchPress(KEYCODE_l)
DispatchPress(KEYCODE_l)
DispatchPress(KEYCODE_e)

//输入hello内容

... ...

 

posted @ 2018-01-14 15:06  西夏一品唐  阅读(1124)  评论(0编辑  收藏  举报