monkeyrunner 脚本 使用集合让一切井井有条

monkeyrunner 脚本 使用集合让一切井井有条

旧版 工具提供了一个 API,用于编写可从 代码外部控制 设备或模拟器的程序。

工具主要用于在功能/框架级测试应用和设备以及运行单元测试套件,不过您也可以将其用于其他用途。使用 ,您可以编写 程序来安装 应用或测试软件包,运行该应用或软件包,向其发送模拟击键,截取其界面的屏幕截图,并将屏幕截图存储到工作站中。

注意: API 未进行维护。我们建议您改用 UI 测试框架。

工具与 UI/ (即 工具)无关。 工具直接在设备或模拟器上的 adb shell 中运行,并生成伪随机用户和系统事件流。相比之下, 工具通过从 API 发送特定命令和事件来从工作站控制设备和模拟器。

工具为 测试提供了以下功能:

工具使用 ,这是一种使用 Java 编程语言的 实现。 让 API 与 框架可以轻松交互。借助 ,您可以使用 语法访问 API 的常量、类和方法。

一个简单的 程序

下面介绍了一个简单的 程序,该程序会连接到一台设备,并创建一个 对象。该程序使用 对象安装 应用软件包,运行其中一个monkeyrunner 脚本,并向该 发送按键事件。然后,该程序会截取结果的屏幕截图,并创建一个 对象。该程序通过此对象输出包含屏幕截图的 PNG 文件。

# Imports the monkeyrunner modules used by this program.
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object.
device = MonkeyRunner.waitForConnection()
# Installs the Android package. Notice that this method returns a boolean, so you can test
# whether the installation worked.
device.installPackage('myproject/bin/MyApplication.apk')
# Sets a variable with the package's internal name.
package = 'com.example.android.myapplication'
# Sets a variable with the name of an Activity in the package.
activity = 'com.example.android.myapplication.MainActivity'
# Sets the name of the component to start.
runComponent = package + '/' + activity
# Runs the component.
device.startActivity(component=runComponent)
# Presses the Menu button.
device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP)
# Takes a screenshot.
result = device.takeSnapshot()
# Writes the screenshot to a file.
result.writeToFile('myproject/shot1.png','png')

API

API 包含在 com.. 软件包的三个模块中:

在 程序中monkeyrunner 脚本,您可以将每个类作为 模块来使用。 工具不会自动导入这些模块。要导入模块,请使用 from 语句:

from com.android.monkeyrunner import <module>

其中 是要导入的类名称。您可以在同一个 from 语句中导入多个模块monkeyrunner 脚本 使用集合让一切井井有条,只需用英文逗号分隔各模块名称即可。

运行

您可以通过文件运行 程序,也可以在交互式会话中输入 语句。您可以通过调用 命令(位于 SDK 目录的 tools/ 子目录中)来执行这两项操作。如果您以参数的形式提供文件名, 命令会将文件的内容作为 程序运行;否则,它会启动一个交互式会话。

以下是 命令的语法:

monkeyrunner -plugin   

表 1 对其中的 标志和参数进行了说明。

表 1. 标志和参数

参数说明

–

(可选)指定包含 插件的 文件。如需详细了解 插件,请参阅 部分。如需指定多个文件,请多次添加该参数。

如果您提供此参数, 命令会将文件的内容作为 程序运行。否则,该命令会启动交互式会话。

(可选)该程序在

. 中的标志和参数

内置帮助

您可以通过运行以下命令为 生成 API 参考文档:

monkeyrunner help.py  

参数如下:

使用插件扩展

您可以使用 Java 编写的类扩展 APImonkeyrunner 脚本 使用集合让一切井井有条,并将其构建为一个或多个 JAR 文件。您可以借助此功能使用自己的类扩展 API,或扩展现有的类。您还可以使用此功能初始化 环境。

如需为 提供插件,请在调用 命令时使用 中所述的 –

参数。

在插件代码中,您可以导入和扩展 com.. 中的 主类 、 和 (请参阅关于 的部分)。

请注意,插件不会授予您对 SDK 的访问权限。您无法导入 com..app 等软件包。这是因为 会与低于框架 API 级别的设备或模拟器交互。

插件启动类

插件的 JAR 文件可以指定在脚本处理开始之前实例化的类。如需指定此类,请将键 unner 添加到 JAR 文件的清单中。该值应采用启动时运行的类的名称。以下代码段展示了如何在 ant 构建脚本中执行此操作:

<jar jarfile="myplugin" basedir="${build.dir}">

<attribute name="MonkeyRunnerStartupRunner" value="com.myapp.myplugin"/>

如需访问 工具的运行时环境,启动类可以实现 mon.base.

。例如monkeyrunner 脚本,此类会在默认命名空间中设置一些变量:

package com.android.example
import com.google.common.base.Predicate
import org.python.util.PythonInterpreter
class Main: Predicate {
    override fun apply(anInterpreter: PythonInterpreter): Boolean {
        /*
         * Examples of creating and initializing variables in the monkeyrunner environment's
         * namespace. During execution, the monkeyrunner program can refer to the variables
         * "newtest" and "use_emulator"
         *
         */
        anInterpreter.set("newtest", "enabled")
        anInterpreter.set("use_emulator", 1)
        return true
    }
}

Java

package com.android.example;
import com.google.common.base.Predicate;
import org.python.util.PythonInterpreter;
public class Main implements Predicate {
    @Override
    public boolean apply(PythonInterpreter anInterpreter) {
        /*
        * Examples of creating and initializing variables in the monkeyrunner environment's
        * namespace. During execution, the monkeyrunner program can refer to the variables "newtest"
        * and "use_emulator"
        *
        */
        anInterpreter.set("newtest", "enabled");
        anInterpreter.set("use_emulator", 1);
        return true;
    }
}

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » monkeyrunner 脚本 使用集合让一切井井有条

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们