Shi*_*har 57 android android-espresso android-uiautomator
我正在寻求适用于Android的UI自动化测试框架,我偶然发现了UI Automator和Espresso,这是我感到困惑的部分-
Android只是框架所以我的疑问/怀疑是 -
UI Automator和之间的主要区别是Espresso什么?Ste*_*ord 39
UIAutomator - 功能强大,具有良好的外部OS系统集成,例如可以在测试期间打开和关闭WiFi并访问其他设置,但缺乏向后兼容性,因为它需要Jelly Bean或更高版本.但是,也缺乏详细的视图访问权限,所以可以说它可能更像是一个纯粹的黑盒测试.Espresso可以访问内部视图(见下文).这在developer.android.com上推荐用于"测试多个应用程序的UI"
Espresso - 与ui automator相比重量更轻,支持2.2 Froyo及以上它还具有流畅的api和强大的hamcrest(https://github.com/hamcrest)集成,使代码更具可读性和可扩展性(它比Ui automator).它无权访问系统集成测试,但可以访问视图内部,例如可以测试webview(对于混合应用程序测试或webview重度测试很有用).与UI Automator相比,灰盒测试稍微多一些.这在developer.android.com上推荐用于"测试单个应用程序的UI".从Android Studio 2.2开始,它现在提供UI测试记录(如UIAutomator)
Dmi*_* Gr 35
实际上,你不需要选择.UIAutomator和Espresso使用相同的仪器运行器,因此您可以在一次测试中使用来自两者的命令.Espresso在UI上有各种匹配器,断言和操作,自动机没有:
Espresso在单独的线程中运行,与其他测试框架相比,它真的很快.
总结:在测试中使用它们,Espresso是主要的,UIAutomator是OS集成的附加工具.
我找到了一篇有趣的文章,讲述了为什么你应该同时使用它们.看一眼:
http://qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html
Espresso对我来说已经足够了,但出于某些原因,例如测试应用程序通知,我会在短短几周内学习uiautomator.
花一些时间
https://github.com/googlesamples/android-testing/tree/master/ui
http://developer.android.com/training/testing/ui-testing/espresso-testing.html
http://developer.android.com/training/testing/ui-testing/uiautomator-testing.html
为了快速了解这两件事是如何工作的,让我们举一个例子。让我们试着找到并使用点击一个按钮,标题为“开始”的棒棒糖UIAutomator和Espresso:
device.findObject(new UiSelector().text("START")).click();
R.string.start并且不需要关心平台实际呈现字符串的方式。您不在乎视图textAllCaps=true是椭圆形还是椭圆形。
onView(withText(R.string.start)).perform(click());
TL:博士;
UIAutomator 以比 Espresso 更低级别的样式搜索视图- 通过 Instrumentation 机制并遍历AccessibilityNodeInfo视图层次结构的树。轮到 Espresso 通常会遍历视图层次结构本身。
| 归档时间: |
|
| 查看次数: |
19612 次 |
| 最近记录: |