首页 > 其他 > 详细

通过脚本实现指定的Monkey操作

时间:2014-03-01 05:25:43      阅读:545      评论:0      收藏:0      [点我收藏+]

虽然说我们知道Monkey是monkey.jar相手机发送伪随机事件流,但是通过对monkey的API研究发现,我们可以通过-f这个参数来实现monkey执行脚本。


在monkey的源码中我们可以看到以下例子:

/** 
 * monkey event queue. It takes a script to produce events 
 *  
 * sample script format: 
 *      type= raw events 
 *      count= 10 
 *      speed= 1.0 
 *      start data >> 
 *      captureDispatchPointer(5109520,5109520,0,230.75429,458.1814,0.20784314, 
 *          0.06666667,0,0.0,0.0,65539,0) 
 *      captureDispatchKey(5113146,5113146,0,20,0,0,0,0) 
 *      captureDispatchFlip(true) 
 *      ... 
 */  

由此可知,我们可以通过编写script来实现使用monkey进行指定操作。

首先,我们需要获取被测程序的包名和lanch activity。

然后我们需要编写一个script脚本,具体如下:

type= point
count= 4
speed= 1.0   
start data >>   
LaunchActivity(com.jason.test,com.jason.test.MainActivity)

captureDispatchPointer(0,0,0,524,390,0,0,0,0,0,0,0);
captureDispatchPointer(1,1,1,524,390,0,0,0,0,0,0,0); 
UserWait(300);
captureDispatchPointer(0,0,0,231,648,0,0,0,0,0,0,0);
captureDispatchPointer(1,1,1,231,648,0,0,0,0,0,0,0);
UserWait(300);
captureDispatchPointer(0,0,0,698,231,0,0,0,0,0,0,0);
captureDispatchPointer(1,1,1,698,231,0,0,0,0,0,0,0);
UserWait(300);
captureDispatchPointer(0,0,0,100,200,0,0,0,0,0,0,0);
captureDispatchPointer(1,1,1,100,200,0,0,0,0,0,0,0);

此例仅用了点击事件,API中还有其他比较常用的事件,如:DispatchKey(按手机硬件)、DispatchTrakball(轨迹球)等。

上例中有几个重要参数需要解释一下:

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

其中action=0时为按下,action=1时为移动,action=2时为抬起,action=3时为取消。x、y为坐标点。pressure为压力值类型为float,size为点击范围大小类型为float。device为deviceID。

其他的参数仍然在研究中。

写好以上脚本后,将脚本放置到/sdcard/monkey.script

然后输入命令:

adb shell monkey -f /sdcard/monkey.script -v 1

其中1为执行脚本次数。



通过脚本实现指定的Monkey操作,布布扣,bubuko.com

通过脚本实现指定的Monkey操作

原文:http://blog.csdn.net/jason_src/article/details/20121107

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!