【问题标题】:Run AndroidViewClient from Java从 Java 运行 AndroidViewClient
【发布时间】:2013-05-11 13:00:35
【问题描述】:

我想为基于monkeyrunner 的Android 应用/UI 创建一个测试环境。我的目标是提供一个自动测试Activities 及其UI 元素(如EditTextButton)的环境,而不是通过随机创建触摸/手势事件,而是通过查找标记为“电子邮件”的EditText 等“有意义”的东西' 并在其中输入电子邮件地址。 我研究了哪些工具是现成的,发现了ChimpChatAndroidViewClient,当然还有dtmilano.blogspot.de

我不熟悉 python 开发,所以我的问题是尝试将 Java 中的 AVC 与 Jython 一起使用是否有意义(甚至可能)(我知道我仍然需要学习一些 Python),或者如果那这将是不必要的复杂化,我应该尝试用普通的 Python 开发这样的东西。

任何意见将不胜感激:)

【问题讨论】:

    标签: android androidviewclient


    【解决方案1】:

    AndroidViewClient 尽量保持你在 Java 中习惯使用的 API 风格,所以学习起来并不难。

    例如,AndroidViewClient 使用了更熟悉的

    ,而不是其他工具采用的不同方法
    vc.findViewById('id/some_id')
    

    查找视图。 它还为此 API 引入了自然扩展,例如

    vc.findViewWithText('sometext')
    

    vc.findViewWithText(re.compile('[a-z]*'))
    

    为了进一步简化,culebra 是不久前推出的。此工具将帮助您生成脚本,只需进行一些更改即可适应您的需求。

    假设您在模拟器或设备中启动 Contacts 应用程序,然后按 Add,您会看到 New Contact 输入表单,根据您提到的示例,您想输入一个电子邮件地址。 New Contact 表单显示后,运行:

    $ culebra --verbose-comments --output=contacts.py
    

    然后编辑生成的脚本contacts.py。找到获取 Email 字段的行,它应该类似于:

    ...
    # class=android.widget.EditText text="Email"
    no_id57 = vc.findViewByIdOrRaise("id/no_id/57")
    ...
    

    并添加

    no_id57.type('donald@example.com')
    

    保存脚本。运行。如果一切顺利,您将看到如何输入电子邮件地址。

    我将在dtmilano.blogspot.com 的单独帖子中创建一个更详细的示例。

    如果您仍想使用 Java,严格来说可以将 AndroidViewClient 移植到 Java(欢迎提供补丁和赞助),或者您可以使用 UiAutomator 创建类似的测试。

    【讨论】:

      猜你喜欢
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 2012-01-07
      • 1970-01-01
      相关资源
      最近更新 更多