monkey script 用法和相关参数

前言:作者做为一个monkeyscript脚本的初次使用者,在写monkeyscript时发现很多资料讲解的不是很全,因此做比较全面的整理。有不对的地方多多指正,QQ:461087346

写monkeyscript的目的在于通过脚本实现一些有规律的操作,monkey是随机的事件操作无规律可以进行,虽然有随机种子,但是随机种子只能重复上次进行的步骤执行,不能进行有规律有计划的操作。

monkey script的事件操作

1.点击事件(DispatchPointer)

DispatchPointer用于向一个执行的坐标位置发送单个手势消息,一般用户模拟点击的操作

DispatchPointer具体的参数为:

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

每个参数的定义如下

long downTime //键最初被按下的时间

long eventTime //事件发生的时间

int action //(ACTION_DOWN=0,ACTION_MOVE=1,ACTION_UP=2,ACTION_CANCEL=3)

float x //x坐标

float y //y坐标

float pressure //当前事件的压力,范围0-1

float size //触摸的近似值,范围0-1

int metaState //当前按下的meta键的标识

 float xPrecision //x坐标精确值 

 float yPrecision //y坐标精确值 

 int device //事件来源,范围0-x,0表示不来自物理设备 

 int sedgeFlags // 

点击事件中最常用的参数只有三个action,x,y,其中action中数字0代表按下,1代表抬起最为常用。参数中的其他参数都是设置为默认的为0。

2.按键事件(DispatchKey)

DispatchKey 主要发送Android一些标准的EventKey(事件键值)按键消息,需要输入指定的对应code码

DispatchKey具体参数如下:

DiapatchKey ( downTime ,eventTime ,action ,code ,repeat ,metaState ,device ,scancode)

每个参数定义如下

long downTime //键最初被按下的时间

 long eventTime //事件发生的时间 

 int action //(ACTION_DOWN=0,ACTION_UP=1,ACTION_MULTIPLE=2) 

 int code //键值,比如KEYCODE_DPAD_DOWN(20) 

 int repeat // 重复次数

 int metaState //当前按下的meta键的标识 

 int device //事件发生的设备id 

 int scancode // 

按键事件同点击事件一样只需要关注的参数是action,code,repeat三个参数,action同样是0代表按下,1代表抬起。其余的参数可以设置成默认参数0。

3.轨迹球事件(DispatchTrackball)

DispatchTrackball 主要用于向一个指定位置发送单个轨迹球消息。

DispatchTrackball(long downtime,long eventtide,int action,float x,float y,float pressure,float size,int metastate,float xprecision,float yprecision,int device,int edgeflags)

每个参数的定义如下

long downtime//指键最初被按下的时间

long eventtide//指事件发生的时间

int action//指具体操作的动作,如按下

float x,float y//指x和y的坐标

float pressure//压力事件的大小(0~1)

float size//指触摸的记事值(0~1)

int metastate//指当前按下mate键的标识

int device//事件的来源(0~x)

float xprecision,float yprecision//指x和y坐标的精确值

int edgeflags//指超出屏幕了范围

其中参数中action:0代表按下,1代表弹起;最常用的参数是action,x,y。

4.拖拽(Drg)

Drg用户模拟一个按钮拖拽

Drag( xStart, yStart, xEnd, yEnd, stepCount)

具体参数如下

xStart, yStart//拖拽的起点位置坐标

xEnd, yEnd//拖拽的终点位置坐标

stepCount//拖拽的事件

注:stepCount拖拽的事件是指有多少个小事件,小事件数目越多操作越连贯

5.缩放事件(PinchZoom)

PinchZoom用于模拟缩放(两指头操作)

PinchZoom( pt1xStart, pt1yStart, pt1xEnd, pt1yEnd, pt2xStart, pt2yStart, pt2xEnd, pt2yEnd, stepCount)

具体参数如下

pt1xStart, pt1yStart//开始的坐标位置1

pt1xEnd, pt1yEnd//结束的坐标位置1

pt2xStart, pt2yStart//开始的坐标位置2

pt2xEnd, pt2yEnd//结束的坐标位置2

stepCount//事件

其中stepCount设置事件多少次完成缩放

6.手指单击事件(Tap)

Tap用于模拟手指一次单机事件

Tap(x,y,tapDuration)

具体参数如下

x,y//为坐标参数

tapDuration//时间

注:tapDuration时间长了可以模拟长按

7.长按事件(LongPress)

LongPress()

LongPress 命令用于模拟长按时间,标准为长按 2s 。它是一个无参的方法,直接调用即可

8.长按(消息)事件(PressAndHold)

PressAndHold用于模拟一个长按时间

PressAndHold( x, y, pressDuration)

参数定义如下

x,y//坐标位置

pressDuration//时间

和 LongPress 类似,但是它是可以定制长按时长的

9.唤醒设备并解锁设备(DeviceWakeUp)

DeviceWakeUp()

DeviceWakeUp 命令可以唤醒设备,并进行解锁。当然需要是一个无加密的设备才可以,有数字密码或者图形密码,都会导致失败。

10.等待5s时间(ProfileWait)

ProfileWait()

ProfileWait已经设定好等待的时长,就是 5s ,直接调用即可

11.等待事件(UserWait)

UserWait(sleepTime)

参数定义如下

sleepTime//参数单位为毫秒

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

12.输入字符串时间(DispatchString)

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

DispatchString( input )

参数定义如下

input//输入字符串参数

注:MS 对中文的支持并不好,所以尽量输入英文的测试数据

13.运行shell命令(RunCmd)

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

RunCmd ( cmd )

参数定义如下

cmd//需要执行的shell命令

14.键盘事件(DispatchPress)

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

DispatchPress( keyName )

参数定义如下

keyName//键盘上名字(见下键盘对应表)

15.软键盘开关(DispatchFlip)

DispatchFlip用于打开或者关闭软键盘

DispatchFlip (keyboardOpen)

参数定义如下

keyboardOpen//布尔值

16.旋转屏幕(RotateScreen)

RotateScreen用于发送旋转测试设备屏幕事件

RotateScreen ( rotationDegree , persist)

参数定义如下

rotateDegree//旋转的角度。

persist//是否保持旋转前的状态。0 为不保持,1 为保持

注:旋转的角度只能是90的倍数,只有4个角度可选。

17.启动Activity(LaunchActivity)

如果未进行设置,可以手动打开appLaunchActivity用于打开任意应用的一个页面,但是前提条件是打开的Activity 需要属性 android:exported 被设定为true,才可以通过 LaunchActivity 打开

如果未进行设置,可以手动打开app

LaunchActivity ( pkg_name , act_name )

参数定义如下

pkg_name//启动的app名字

act_name//打开的 Activity 的名称

======键盘对应值摘自https://blog.csdn.net/letsstudy/article/details/89077389


字母和数字键的键码值(keyCode)


按键


键码


按键


键码


按键


键码


按键


键码


A


65


J


74


S


83


1


49


B


66


K


75


T


84


2


50


C


67


L


76


U


85


3


51


D


68


M


77


V


86


4


52


E


69


N


78


W


87


5


53


F


70


O


79


X


88


6


54


G


71


P


80


Y


89


7


55


H


72


Q


81


Z


90


8


56


I


73


R


82


0


48


9


57

  


数字键盘上的键的键码值(keyCode)


功能键键码值(keyCode)


按键


键码


按键


键码


按键


键码


按键


键码


0


96


8


104


F1


112


F7


118


1


97


9


105


F2


113


F8


119


2


98


*


106


F3


114


F9


120


3


99


+


107


F4


115


F10


121


4


100


Enter


108


F5


116


F11


122


5


101


-


109


F6


117


F12


123


6


102


.


110


7


103


/


111

  


控制键键码值(keyCode)


按键


键码


按键


键码


按键


键码


按键


键码


BackSpace


8


Esc


27


Right Arrow


39


-_


189


Tab


9


Spacebar


32


Dw Arrow


40


.>


190


Clear


12


Page Up


33


Insert


45


/?


191


Enter


13


Page Down


34


Delete


46


`~


192


Shift


16


End


35


Num Lock


144


[{


219


Control


17


Home


36


;:


186


\|


220


Alt


18


Left Arrow


37


=+


187


]}


221


Cape Lock


20


Up Arrow


38


,<


188


‘"


222


多媒体键码值(keyCode)


按键


键码


按键


键码


按键


键码


按键


键码


音量加


175


音量减


174


停止


179


静音


173


浏览器


172


邮件


180


搜索


170


收藏


171

原文地址:https://www.cnblogs.com/chunhui0321/p/12175616.html

时间: 2024-08-03 06:23:19

monkey script 用法和相关参数的相关文章

linux-framebuffer设备相关参数

如果应用程序需要知道Framebuffer设备的相关参数,必须通过ioctl()系统调用来完成. 在头文件<linux/fb.h>中定义了所有的ioctl命令字,不过,最常用的ioctl命令字是下面这两个:FBIOGET_FSCREENINFO和FBIOGET_VSCREENINFO. 前者返回与Framebuffer有关的固定的信息,比如图形硬件上实际的帧缓存空间的大小.能否硬件加速等信息. 而后者返回的是与Framebuffer有关的可变信息. 之所以可变,是因为对同样的图形硬件,可以工作

android屏幕分类与屏幕相关参数定义

android设备运行在各种不同的屏幕中,这些屏幕有着不同的screen sizes(屏幕大小)和screen densities(屏幕密度).screen sizes表示屏幕的实际物理大小,比如5寸手机,7寸平板,8寸平板.而screen densities表示屏幕的像素密度,比如同样5寸的手机,有720p的,有1080p的.screen sizes和screen densities从两个维度表示了屏幕的属性,他们互不影响. Screen Sizes 屏幕的真实物理尺寸,以屏幕的对角线测量,一

Linux 网络(连接)相关参数作用

参考: [1] http://bbs.chinaunix.net/thread-2318039-1-1.html net.core.netdev_max_backlog = 1000 TCP KeepAlive net.ipv4.tcp_keepalive_time = 7200 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_intvl = 75 Linux 网络(连接)相关参数作用,布布扣,bubuko.com

mysql之 binlog维护详细解析(开启、binlog相关参数作用、mysqlbinlog解读、binlog删除)

binary log 作用:主要实现三个重要的功能:用于复制,用于恢复,用于审计.binary log 相关参数:log_bin设置此参数表示启用binlog功能,并指定路径名称log_bin_index设置此参数是指定二进制索引文件的路径与名称binlog_do_db此参数表示只记录指定数据库的二进制日志binlog_ignore_db此参数表示不记录指定的数据库的二进制日志max_binlog_cache_size此参数表示binlog使用的内存最大的尺寸binlog_cache_size此

Jquery Validate 相关参数

Jquery Validate 相关参数 //定义中文消息 var cnmsg = { required: “必选字段”, remote: “请修正该字段”, email: “请输入正确格式的电子邮件”, url: “请输入合法的网址”, date: “请输入合法的日期”, dateISO: “请输入合法的日期 (ISO).”, number: “请输入合法的数字”, digits: “只能输入整数”, creditcard: “请输入合法的信用卡号”, equalTo: “请再次输入相同的值”

梯度优化算法总结(转载)以及solver中相关参数解释

原文地址:http://sebastianruder.com/optimizing-gradient-descent/ 如果熟悉英文的话,强烈推荐阅读原文,毕竟翻译过程中因为个人理解有限,可能会有谬误,还望读者能不吝指出.另外,由于原文太长,分了两部分翻译,本篇主要是梯度下降优化算法的总结,下篇将会是随机梯度的并行和分布式,以及优化策略的总结. 梯度下降是优化中最流行的算法之一,也是目前用于优化神经网络最常用到的方法.同时,每个优秀的深度学习库都包含了优化梯度下降的多种算法的实现(比如, las

Oracle 表的创建 及相关参数

1. 创建表完整语法 CREATE TABLE [schema.]table (column datatype [, column datatype] - ) [TABLESPACE tablespace] [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [STORAGE storage-clause] [LOGGING | NOLOGGING] [CACHE | NOCACHE] ]; 说明:

Spark 性能相关参数配置详解-任务调度篇

随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇幅较长,所以在这里分篇组织,如果要看最新完整的网页版内容,可以戳这里:http://spark-config.readthedocs.org/,主要是便于更新内容 schedule调度相关 调度相关的参数设置,大多数内容都很直白,其实无须过多的额外解释,不过基于这些参数的常用性(大概会是你针对自己的

Innodb buffer相关参数及查看方式(待续)

buffer相关参数: innodb_buffer_pool_size                      innodb_buffer 大小 innodb_buffer_pool_instances             innodb_buffer instance 个数 innodb_old_blocks_pct                        LRU端mid点位置 innodb_old_blocks_time                      LRU在Old端保