Android测试之Monkey Script

简介: 什么是Monkey ScriptMonkey Script是用来使Monkey执行特定操作的命令集合。为什么要用MonkeyScript由于Monkey的执行是随机的不能满足特定的需求,因此我们需要Monkey Script来使Monkey执行我们需要的特定操作。

什么是Monkey Script

Monkey Script是用来使Monkey执行特定操作的命令集合。

为什么要用MonkeyScript

由于Monkey的执行是随机的不能满足特定的需求,因此我们需要Monkey Script来使Monkey执行我们需要的特定操作。

如何使用Monkey Script

步骤一:编写脚本(test.txt)

type=user #指明脚本类型
count=10 #脚本执行次数
speed=1.0 #命令执行速率
start data >> #用户脚本入口,下面是用户自己编写的脚本
# 上面是固定的格式头
# 启动Activity
LaunchActivity(com.itfitness.monkeytest,com.itfitness.monkeytest.MainActivity)
# 等待2秒
UserWait(2000)
# 某一坐标点按下
DispatchPointer(10,10,0,200,100,1,1,-1,1,1,0,0)
# 某一坐标点抬起
DispatchPointer(10,10,1,200,100,1,1,-1,1,1,0,0)
# 以上按下抬起共同模拟屏幕点击
UserWait(1000)
# 输入test
DispatchString(test)
UserWait(1000)
DispatchPointer(10,10,0,200,150,1,1,-1,1,1,0,0)
DispatchPointer(10,10,1,200,150,1,1,-1,1,1,0,0)
UserWait(1000)

需要注意的是LaunchActivity()命令启动的Activity需要在AndroidManifest文件中中配置Activity的exported属性为true。

 <activity android:name=".MainActivity" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

步骤二:将脚本导入手机内

adb命令

adb push test.txt data/local/tmp
img_bb9642c39dbf1b1142c17166a4df1007.png

步骤三:查看是否导入了手机内(这里我们可以看到有test.txt说明已经导入手机了)

img_23129944290ff367e4a984d4bd0f74e4.gif

步骤四:安装Apk

adb install apk名.apk

步骤五:执行脚本

# monkey -f 脚本文件名 次数
monkey -f test.txt 100

补充:Monkeyscript API介绍

●单击事件:DispatchPointer(downTime,eventTime,action,x,y,pressure,size,metaStat,xPrecision,yPrecision,device,edgeFlags)

这里我们只需要了解action、x、y即可

  • action:0表示按下,1表示抬起
  • x:这个事件的X坐标。
  • y:这个事件的Y坐标。

示例:

DispatchPointer(10,10,0,200,150,1,1,-1,1,1,0,0) //按下
DispatchPointer(10,10,1,200,150,1,1,-1,1,1,0,0) //抬起

这里的x、y坐标可以通过Android sdk中自带的uiautomatorviewer工具来获取(uiautomatorviewer工具的使用)

●拖动:Drag(x1,y1,x2,y2,stepCount)

示例:

Drag(300,500,300,300,15) //快速下滑
Drag(300,300,300,500,15) //快速上滑

●双指缩放:PinchZoom(xstart1,ystart1,xstart2,ystart2,xend2,yend2,xend1,yend1,step)

示例:

PinchZoom(400,400,200,300,550,550,700,700,3) //放大

●执行shell命令:RunCmd(cmd)

示例:

RunCmd(monkey -v 1000)

●发送tap事件(一个touchdown和touch up事件),时间长可以模拟长按,时间单位为ms

Tap(x,y,tapDuration)

●启动唤醒设备:DeviceWakeUp()

●获取最后一个touch时间的点做长按:LongPress()

●按住duration时长:PressAndHold(x,y,duration)

●屏幕旋转:RotateScreen(rotationDegree,persist),rotationDegree只能支持0,90,180,270, persist 0/1

● 对指定keycode模拟press事件:DispatchPress(KeyCode)

KeyCode对照表

img_2e168831f67ee5aaf87b765dbefda9df.png
img_cfb2c8ec892cadfa0a02e8ea74dc3888.png

个人博客:https://myml666.github.io

目录
相关文章
|
27天前
|
Java 测试技术 API
安卓APP和iOS APP在测试上的区别是什么?
安卓APP和iOS APP在测试上的区别是什么?
|
27天前
|
Web App开发 小程序 测试技术
最简单的Web Monkey 测试范例
最简单的Web Monkey 测试范例
|
27天前
|
测试技术 Shell Android开发
随机测试 Monkey Test
随机测试 Monkey Test
|
2月前
|
Linux 网络安全 开发工具
Android APP入门之Android的简介以及Android Studio开发环境的搭建和测试(2022最新 图文解释 简单易懂)
Android APP入门之Android的简介以及Android Studio开发环境的搭建和测试(2022最新 图文解释 简单易懂)
42 0
|
2月前
|
Java 测试技术 持续交付
百度搜索:蓝易云【NetMock简介:简化 Java,Android和Kotlin多平台中的HTTP请求测试?】
使用NetMock,您可以在单元测试、集成测试和端到端测试中轻松地模拟和验证HTTP请求和响应,而无需实际发送请求到外部服务。这样可以提高测试的可靠性和可控性,并加快测试执行的速度。无论是在开发过程中还是在持续集成环境中,NetMock都可以帮助您更轻松地进行HTTP请求测试,提高代码质量和稳定性。
34 1
|
2月前
|
设计模式 监控 Java
『APP稳定性测试干货』| 基于Monkey的移动端/APP稳定性测试过程和方法
『APP稳定性测试干货』| 基于Monkey的移动端/APP稳定性测试过程和方法
37 1
|
2月前
|
移动开发 Shell 测试技术
Realtek蓝牙Android10.0移植结束后的基本测试和常见问题分析
Realtek蓝牙Android10.0移植结束后的基本测试和常见问题分析
|
4月前
|
测试技术 开发工具 数据库
《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法
《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法
45 0
|
4月前
|
安全 Shell Android开发
|
6月前
|
Android开发
Android项目中运行main方法,进行测试,配置方法
Android项目中运行main方法,进行测试,配置方法
104 0

相关产品

  • 云迁移中心