我想基于monkeyrunner
为Android应用/用户界面创建测试环境。我的目标是提供一个自动测试Activities
及其UI元素(如EditText
或Button
)的环境,而不是通过随机创建触摸/手势事件,而是执行“有意义”的内容,例如查找{ {1}}标记为“电子邮件”并输入电子邮件地址。
我做了一些关于哪些工具随时可用的研究EditText
,AndroidViewClient,当然还有dtmilano.blogspot.de。
我对python开发并不熟悉,所以我的问题是,如果尝试使用Jython中的Java AVC(我知道我还需要学习一些Python)或者是否有任何意义(甚至可能)将是一个不必要的复杂事物,我应该尝试用普通的Python开发这样的东西。
任何意见都将受到高度赞赏:)
答案 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创建类似的测试。