从Java运行AndroidViewClient

时间:2013-05-10 12:06:41

标签: android androidviewclient

我想基于monkeyrunner为Android应用/用户界面创建测试环境。我的目标是提供一个自动测试Activities及其UI元素(如EditTextButton)的环境,而不是通过随机创建触摸/手势事件,而是执行“有意义”的内容,例如查找{ {1}}标记为“电子邮件”并输入电子邮件地址。 我做了一些关于哪些工具随时可用的研究EditTextAndroidViewClient,当然还有dtmilano.blogspot.de

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

任何意见都将受到高度赞赏:)

1 个答案:

答案 0 :(得分:2)

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

例如, AndroidViewClient 使用更熟悉的

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

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

vc.findViewWithText('sometext')

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

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

假设您在模拟器或设备中启动通讯录应用程序,然后按添加,系统会显示新联系人条目表单,根据您提到的示例,您想输入一个电子邮件地址。 显示新联系人表单后,运行:

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