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

目录
相关文章
|
9月前
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
182 0
|
10天前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
122 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
1月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
41 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
5月前
|
Java 测试技术 Android开发
Android性能测试——发现和定位内存泄露和卡顿
本文详细介绍了Android应用性能测试中的内存泄漏与卡顿问题及其解决方案。首先,文章描述了使用MAT工具定位内存泄漏的具体步骤,并通过实例展示了如何分析Histogram图表和Dominator Tree。接着,针对卡顿问题,文章探讨了其产生原因,并提供了多种测试方法,包括GPU呈现模式分析、FPS Meter软件测试、绘制圆点计数法及Android Studio自带的GPU监控功能。最后,文章给出了排查卡顿问题的四个方向,帮助开发者优化应用性能。
328 4
Android性能测试——发现和定位内存泄露和卡顿
|
5月前
|
测试技术 Shell Android开发
Android 性能测试初探 (六)
本节聊聊性能测试的最后一项- 流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试,但本系列文章都不去一一探讨了。
91 6
|
5月前
|
JavaScript 测试技术 Android开发
Android 性能测试初探 (四)
本文介绍了GPU在移动端性能测试中的重要性,并详细解释了过度绘制、帧率和帧方差的概念。针对GPU测试,文章列举了三项主要测试内容:界面过度绘制、屏幕滑动帧速率和平滑度。其中,过度绘制测试需遵循特定标准,而帧速率和平滑度测试则可通过软件或硬件方法实现。在软件测试中,使用Systrace插件和高速相机是两种常用手段。对于不同机型,帧率及帧方差的测试标准也需相应调整。
80 5
|
5月前
|
测试技术 Shell Android开发
Android 性能测试初探 (三)
本文承接《Android性能测试初探(二)》,深入探讨CPU与内存测试。介绍了移动端内存测试的重要性及其测试目标,并详细列举了不同状态下应用内存消耗情况的测试项目。此外,还提供了多种内存测试方法,包括使用`procrank`等工具的具体操作步骤。最后,文章也简要提及了CPU测试的相关内容,帮助读者更好地理解Android性能测试的关键要素。
73 5
|
5月前
|
测试技术 Shell 定位技术
Android 性能测试初探 (五)
聊聊大家不常关注的测试项- 功耗
77 3
|
5月前
|
算法 测试技术 Android开发
Android 性能测试初探 (二)
上回大体介绍了下在 android 端的性能测试项,现在我们就细节测试项做一些阐述(包括如何自己 DIY 测试)
83 4
|
5月前
|
测试技术 API Android开发
Android 性能测试初探 (一)
Android 性能测试,跟pc性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类: 一类为 rom 版本的性能测试;一类为应用的性能测试。
79 3

热门文章

最新文章

  • 1
    android FragmentManager 删除所有Fragment 重建
    15
  • 2
    Android实战经验之Kotlin中快速实现MVI架构
    21
  • 3
    即时通讯安全篇(一):正确地理解和使用Android端加密算法
    24
  • 4
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    39
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    122
  • 6
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    40
  • 7
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    55
  • 8
    Android历史版本与APK文件结构
    149
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    46
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    40