monkeyScript

monkey为向系统发送伪随机事件流,不能控制操作,monkeyscript为monkey脚本编写,完成一系列固定的操作。基于坐标点进行操作,包括点击,输入,长按,滑动等操作。

(1)启动
当前测试的时候利用EditPlus编写脚本,或者记事本编写也可以,MS(monkeyscript)脚本文件格式没有限制,可用txt,或者其他格式,当前用的是没有后缀。

启动时通过monkey命令启动:
adb shell monkey -v -v -v -f /mnt/sdcard/makeFriend 5
其中:-f后面为脚本所在的文件路径以及脚本名,10为脚本执行的次数为5次(注意一定要写上执行次数,不然脚本不会成功),脚本路径/mnt/sdcard/makeFriend为通过adb命令导入路径中的

(2)脚本编写:
# Start Script
type=user
count=10
speed=1.0
start data >>
#启动应用程序,两个参数分别为包名和Activity名
LaunchActivity(com.cwtcn.kt.friend,com.cwtcn.kt.friend.MainMenuActivity)
#等待事件,等待2秒钟
UserWait(2000)
#点击事件,点击远程交友按钮
captureDispatchPointer(10,10,0,121,85,1,1,-1,1,1,0,0)
captureDispatchPointer(10,10,1,121,85,1,1,-1,1,1,0,0)
#等待事件,等待3秒钟
UserWait(3000)
#点击事件,点击输入手机号或者imei号的输入框
captureDispatchPointer(10,10,0,96,85,1,1,-1,1,1,0,0)
captureDispatchPointer(10,10,1,64,85,1,1,-1,1,1,0,0)
#输入字符串事件,输入手机号15889768225
captureDispatchString(15889768225)
#点击enter回车
captureDispatchPress(66)
#等待事件,等待2秒钟
UserWait(2000)
#点击事件,点击搜索按钮
captureDispatchPointer(10,10,0,118,174,1,1,-1,1,1,0,0)
captureDispatchPointer(10,10,1,118,174,1,1,-1,1,1,0,0)
上面脚本为交友脚本,通过点击远程交友,输入手机号,点击搜索按钮

(3)脚本相关api
上述脚本第一行到第五行,都为固定脚本,照抄就好
LaunchActivity(String pack_name,String cl_name)为启动应用程序,参数分别为包名和当前界面的Activity名。
获取当前界面包名和Activity名的方法:adb shell "dumpsys window | grep mCurrentFocus"

captureDispatchPointer(10,10,0,121,85,1,1,-1,1,1,0,0)
captureDispatchPointer(10,10,1,121,85,1,1,-1,1,1,0,0)
该脚本为点击事件,代表按下和弹起事件,一般配套使用,其中第三列参数的0代表为按下,1位弹起,121,85为点击的坐标位置,坐标位置用uiautomator viewer工具查看,其他参数默认

(4)常用Api介绍:
1、点击事件: DispatchPointer ( downTime , eventTime ,  action , x , y  , pressure , size , metaState , xPrecision , yPrecision , device , edgeFlags)
用于向一个指定的坐标位置,发送单个手势消息,一般用它来模拟点击的操作。
  • action :事件是按下还是抬起,0 表示按下,1 表示抬起。
  • x、y:表示当前事件触发的X轴和Y轴的坐标。
也就是说,两个 DispatchPointer 命令加在一起,分别表示 按下 和 抬起 ,这表示一次点击操作

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

3、启动应用
LaunchActivity(String pack_name,String cl_name)为启动应用程序,参数分别为包名和当前界面的Activity名。

4、模拟按键点击Tap(x,y,tapDuration)
模拟一次手指单击事件,x,y分别为坐标值,tapDuration为按下的时长

5、打开或关闭软键盘DispatchFlip(true/false)

6、长按两秒:LongPress()

7、唤醒屏幕:DeviceWakeUp()

8、模拟拖动事件:Drag(xStart,yStart,xEnd,yEnd)

9、输入字符串:DispatchString(input)

参考下面两篇博客






  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值