0

我想为基于monkeyrunner. 我的目标是提供一个环境来自动测试Activities它们的 UI 元素,比如EditTextor Button,而不是通过随机创建触摸/手势事件,而是做一些“有意义的”事情,比如找到一个EditText标有“电子邮件”的邮件并在其中输入一个电子邮件地址。我对哪些工具可用并找到了一些研究ChimpChatAndroidViewClient,当然还有dtmilano.blogspot.de

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

任何输入将不胜感激:)

4

1 回答 1

2

AndroidViewClient尝试保持与您习惯使用 Java 相同的 API 样式,因此学习它并不难。

例如,AndroidViewClient没有采用其他工具采用的不同方法,而是使用了更熟悉的

vc.findViewById('id/some_id')

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

vc.findViewWithText('sometext')

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

为了进一步简化事情,前一段时间引入了culebra 。该工具将帮助您生成脚本,只需进行一些更改即可适应您的需求。

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

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

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

...
# 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创建类似的测试。

于 2013-05-11T05:00:35.987 回答