1、介绍
MonkeyScript是monkey的脚本语言,是一组可以被Monkey识别的命令集合,可以帮我们完成一系列的被固定的重复性操作。
脚本优势:简单、快捷、不需要借助任何工具,只是运行一个脚本文件
脚本缺点:只能简单实现坐标、按键等基本操作(根据像素点来进行操作)
2、脚本格式
#头文件、控制monkey发送消息的参数
type=raw events
count=10
speed=1.0
#以下为monkey命令
start data >>
LaunchActivity(pkg_name,activity)
DispatchPress(KEYCODE_ENTER)
DispatchPress(KEYCODE_HOME)
---->前三行是脚本头。count为脚本中包含的指令数目。speed为执行速度。
---->start data >>后面是执行的命令。
3、常用方法
LaunchActivity(pkg_name, cl_name): 启动应用的Activity。参数:包名和启动的Activity。
(1)点击操作
Tap(x, y, tapDuration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略。
DispatchPress(keyCode): 按键。注:keyCode值可以百度android keycode列表获取
LongPress(): 长按2秒。
PressAndHold(x, y, pressDuration): 模拟长按事件。
DispatchPointer(downTime,eventTime,action,x,y,pressure,size,metaState,xPrecision,yPrecision,device,edgeFlags):DispatchPointer命令用于向一个指定的坐标位置,发送点击操作。
主要关注action、x、y三个参数。action:事件是按下还是抬起,0表示按下,1表示抬起。x、y:表示当前事件触发的X轴和Y轴的坐标。两个DispatchPointer命令加在一块,一个按下一个抬起,表示一次点击操作,其余参数默认设置为0即可。downTime,eventTime表示持续时间,用毫秒表示。
(2)拖拽操作
Drag(xStart, yStart, xEnd, yEnd, stepCount): 用于模拟一个拖拽操作。
PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模拟缩放手势。
(3)等待操作
UserWait(sleepTime): 等待一段时间,sleepTime表示的等待时间,单位为毫秒。
DeviceWakeUp(): 唤醒屏幕。
ProfileWait: 等待5秒。
(4)其他操作
DispatchString(input): 输入字符串。
RotateScreen(rotationDegree, persist): 旋转屏幕。 参数:rotationDegree为旋转角度, e.g. 1代表90度;persist表示旋转之后是否固定,0表示旋转后恢复,非0则表示固定不变。
DispatchFlip(true/false): 打开或者关闭软键盘。
4.实例
-
<脚本举例>
要求:打开浏览器,输入www.ningmengban.com, 退出浏览器。这个步骤进行重复压力测试。
-
---->脚本文件browser.txt编写内容如下:
#头文件、控制monkey发送消息的参数
type=raw events
count=10
speed=1.0
#以下为脚本正文
start data >>
#1.打开浏览器
LaunchActivity(com.android.browser,com.android.browser.BrowserActivity)
ProfileWait()
#2.清空网址
Tap(223,146)
ProfileWait()
DispatchPress(112)
ProfileWait()
#3.输入网址
DispatchString(www.ningmengban.com)
ProfileWait()
#4.确认,载入网址
DispatchPress(KEYCODE_ENTER)
ProfileWait()
#5.完成退出浏览器
DispatchPress(KEYCODE_HOME)
ProfileWait()
---->将browser.txt文件push到手机中
adb push D:rowser.txt data/local/tmp
D:rowser.txt 为本地脚本文件路径及名称,data/local/tmp为手机路径
---->运行脚本
adb shell monkey -f data/local/tmp/browser.txt -v -v 200