您的位置:首页 > 其它

5分钟教你怎样实现monkey脚本的编写【详细篇,快速上手】

2020-06-06 04:40 686 查看

什么monkey脚本?
平时我们使用adb shell monkey命令去让猴子跑时,猴子是无意识、不带任何主观思想地去操作,但是monkey脚本弥补了这一缺陷,可以自定义去模拟用户行为。

将monkey命令写在一个脚本中,可以很好地组织命令,统一执行多条命令

一、搭建移动端环境

1、下载JDK、配置JDK环境变量

这里分享一个百度网盘下载jdk:
链接: https://pan.baidu.com/s/1lB3sAQ2qi2hn5FV-8KWkDA 提取码: xznu

下载好后点击进行安装。

右击此电脑---属性---高级系统配置----环境变量---系统变量


在系统变量
<1> 添加环境变量

名为: JAVA_HOME
值为: jdk在电脑上安装的绝对路径

<2> 在path中加入变量值:
%JAVA_HOME%\bin;
%JAVA_HOME%\jre\bin

<3> 验证jdk是否配置好
打开cmd,输入javac

出现有关JAVA信息表示配置成功

2、安装Android SDK 配置SDK环境变量

分享Android SDK百度网盘链接下载:
链接: https://pan.baidu.com/s/1a55OlUyx40Xfh3He3EWMcA 提取码: 5igd

解压后,开始配置Android SDK环境变量

右击此电脑---属性---高级系统配置----环境变量---系统变量

<1> 添加环境变量
名为: ANDROID_HOME
值为: Android SDK在电脑上安装的绝对路径

<2> 在path中加入变量值:

相对路径配置Android:
%ANDROID_HOME%\tools
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\build-tools\android-4.3
%ANDROID_HOME%\platforms\android-18
%ANDROID_HOME%\build-tools\android-4.3\aapt.exe

二、monkey脚本中常用的操作命令

1.LaunchActivity(pkg_name, cl_name): 启动应用,第一个参数是包名,第二个是启动的activity名

2.DispatchPointer(downtime,eventTime,action,x,y,xpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags) :向指定位置发送单个手势,相当于我们把手指按在某个点上;这个方法参数有12个,但是我们主要关注owntime,eventTime,action,x,y这么几个参数,x,y表示按下的坐标,可以通过移动端定位工具UI Automator获取,这在你想测试点击某个具体view是很有用的。
当然你也可以通过

3.DispatchPress(keycode): 向系统发送一个固定的按键事件;例如home键,back键;参数是按键值 ,按键值可查看keycode

4.UserWait(1000):让脚本的执行暂停一段时间,做一个等待操作

5.RotateScreen(rotationDegree, persist): 翻转屏幕,第一个参数是旋转角度,第二个是旋转后是否停在当前位置

6.Tap(x, y) :单击事件,点击屏幕,参数是点击坐标
(坐标位置的查看方式:手机–设置–开发者选项–指针位置勾选开启)

7.Drag(xStart, yStart, xEnd, yEnd):在屏幕上滑动,坐标是从哪一点滑到哪一点

8.其他
LongPress(): 长按2s
ProfileWait(): 等待5s
PressAndHold(x, y, pressDuration) :模拟长按
PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模拟缩放
DispatchString(input): 输入字符串
RunCmd(cmd) :执行shell命令,比如截图 screencap -p /data/local/tmp/tmp.png
DispatchFlip(true/false) :打开或者关闭软键盘
UserWait(sleepTime) :睡眠指定时间
DeviceWakeUp() :唤醒屏幕

三、monkey脚本编写–运行–日志分流

1.编写脚本

注意:

①脚本的后缀的.mks monkey script(后缀为.txt也是可以执行成功的)

②在编写下方图片中的start data中,start和data中间只允许用一个空格, 并在data后面与>>只允许有一个空格,并且>>这两个大于号中间不允许有空格(这已经是我踩过的坑了~~)

count指的是次数
speed 执行的速度

2.执行脚本

(1)使用adb push 将上面编写的.mks(也可以是.txt)脚本放在模拟器中

(2)使用命令adb shell monkey -f /sdcard/monkey.mks -v -v 1 (红色部分根据自己情况改路径)

3.实现log日志分流

这里在网上找了一道题,来实战一下


1>标准流输出的位置
2>异常信息输出的位置

这是分享一个我总结的monkey脚本教程,喜欢的小伙伴可以下载

链接:https://pan.baidu.com/s/1pDE25UuQSOc5mbxd_3Z4Aw
提取码:sl4z

如果有问题的小伙伴可以在评论区留言或者加群:762141168

小转转定知无不尽~~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: