Android-MonkeyRunner 压力测试(一)

Android-Monkey 压力测试
Adnroid-UI Automator Viewer 的使用
Adnroid-Monkey Script 压力测试(一)
Adnroid-Monkey Script 压力测试(二)
Android-MonkeyRunner 压力测试(一)
Android-MonkeyRunner 压力测试(二)
Android-MonkeyRunner API 参考
Android-Monkey 源代码参考

1. MonkeyRunner 介绍

MonkeyRunner 是 Android SDK 中提供的一个用于自动化压力测试的工具包,可以同时在多个设备上进行测试。
它的测试程序是使用 Python 语言写的,并使用 monkeyrunner 命令运行 Python 测试程序(monkeyrunner 命令在 Andorid 的 SDK tools\bin 目录下)。

在 MonkeyRunner 测试程序中,你可以使用它的 API 安装 Android 应用、
测试应用、向应用发送按键、截屏、保存屏幕截图等。

它是通过屏幕上 View 的坐标来发送点击、长按等事件的。
可以使用 Android ADK 的 tools\bin 目录下 uiautomatorviewer 工具获取 View 在屏幕上的坐标。
UI Automator Viewer 参考: https://www.jianshu.com/p/b2890c631ec5

MonkeyRunner 包含许多的 API,它的 API 主要包含三个部分:

  1. MonkeyRunner 测试程序入口类,包含多个静态方法,如:等待设备连接、弹出 Dialog。
  2. MonkeyDevice 用来控制 Android 设备或模拟器。
  3. MonkeyImage 用来存储设备或模拟器屏幕截图。

2. MonkeyRunner API

2.1. MonkeyRunner API

1. 连接设备或模拟器

MonkeyDevice waitForConnection(float timeout, string deviceId)

参数:

  • timeout: 等待连接的秒数。默认值为无限期等待。
  • deviceId: 设备或模拟器的序列号。通常使用 adb devices 命令获取。

返回值:

  • 设备或模拟器的 MonkeyDevice 实例。使用此对象可控制设备或模拟器并与之通信。

2. 程序暂停

void sleep(float seconds)

参数:

  • seconds: 当前程序暂停指定的秒数,单位:秒

3. 显示提示对话框

void alert(string message, string title, string okTitle)

参数:

  • message: 对话框中显示的消息。
  • title: 对话框的标题。默认值为“Alert”。
  • okTitle: 对话框按钮中显示的文本。默认值为“OK”。
2.2. MonkeyDevice API

1. 安装 App

void installPackage(string path)

参数:

  • path: 要安装的 .apk 文件的完全限定路径和文件名。

2. 启动 Activity

void startActivity(string uri, string action, string data, string mimetype, 
                   iterable categories dictionary extras,
                   component component, iterable flags)

参数:

  • uri: Intent 的 URI,和 Intent.setData() 方法对应。
  • action: Intent 的操作,和 Intent.setAction() 方法对应。
  • data: Intent 的数据 URI,和 Intent.setData() 方法对应。
  • mimetype: Intent 的 MIME 类型,和 Intent.setType() 方法对应。
  • categories: 一种可迭代数据结构,包含定义 Intent 的类别的字符串,和 Intent.addCategory() 方法对应。
  • extras: Intent 的额外数据字典。和 Intent.putExtra() 方法对应。
    每个字典项的键都应该是一个字符串。字典项的值可以是任意简单或结构化数据类型。
  • component: Intent 的组件(请参阅 ComponentName)。使用此参数可将 Intent 指向特定 Android 软件包中的特定类。
  • flags: 一种可迭代数据结构,包含可控制 Intent 处理方式的标记,和 Intent.setFlags() 方法对应。

3. 发送点击事件

void touch(integer x, integer y, string type)

参数:

  • x 点击事件的 X 坐标。
  • y 点击事件的 Y 坐标。
  • type 要发送的点击事件的类型。允许的值包括 DOWN、UP 和 DOWN_AND_UP。

4. 发送按键事件

void press(string name, integer type)

参数:

  • name 要发送的键码的名称。参考 android.view.KeyEvent,是键码名称,不是对应的整数值。
  • type 要发送的按键事件的类型。允许的值包括 DOWN、UP 和 DOWN_AND_UP。

5. 输入内容

void type(string message)

参数:

  • message 要输入的字符串。

6. 屏幕截屏

MonkeyImage takeSnapshot()

返回值:

  • 一个包含当前屏幕截图的 MonkeyImage 对象。

2.3. MonkeyImage API

1. 保存屏幕截图

void writeToFile(string filename, string format)

参数:

  • filename 文件保存路径,例如:D:/test.png
  • format 文件的输出格式。如果没有提供格式,则该方法将尝试根据文件扩展名猜出格式。如果未提供扩展名且未指定格式,则使用默认格式“png”

2. 图片比较

boolean sameAs(MonkeyImage otherImage, float percent)

参数:

  • otherImage 要与此对象进行比较的另一个 MonkeyImage 对象。
  • percent 介于 0.0(含)到 1.0(含)的浮点数,表示要使方法返回 true,
    必须相同的像素所占百分比。默认值为 1.0,表示所有像素均必须匹配。

返回值:

  • 如果图片匹配,则返回布尔值 true,否则返回布尔值 false。

Android-MonkeyRunner 压力测试(二)
更多 MonkeyRunner API 参考:https://developer.android.google.cn/studio/test/monkeyrunner/MonkeyDevice?hl=zh_cn

你可能感兴趣的:(Android-MonkeyRunner 压力测试(一))