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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335