UI Testing Framework

UI Testing Framework构成的重要类:shell

UiTestAutomationBridge ide

这是整个Testing Framework的基础,此类负责链接系统了,记录最新的可连接事件(AccessibilityEvent) , 窗口内容查询Api等。能够被Android App调用,或者Java程序从shell调用。函数

这里须要注意两个概念:测试

一、AccessibilityEvent:全部的Ui元素能够被操纵,由于这些Event都是AccessibilityEvent。对于怎样令页面元素能够被操纵,使得相关的事件都是AccessibilityEvent,请参见Uiautomator 词条-"确认程序能够被测试" 部分。
2、AccessibilityNodeInfo:视窗中的组件树节点,也就是uiautomtorViewer中展现的各个节点。
Api中connect(), disconnect() 负责创建与设备的实际链接。
executeCommandAndWaitForAccessibilityEvent() performAccessibilityAction() findAccessibilityNodeInfosByText(), findAccessibilityNodeInfoByViewIdInActiveWindow() 都是其中重要的Api。ui

UiAutomatorBridge spa

UiAutomatorBridge是UiTestAutomationBridge的子类,区别主要是在构造函数中加上了InteractionController 和QueryController 两大对象的调用。以及一些常量定义等。除了上述差别,UiAutomatorBridge还定义了executeCommandAndWaitForAccessibilityEvent() 、onAccessibilityEvent() 、waitForIdle() 、addAccessibilityEventListener() 等函数。orm

InteractionController 对象

介绍InteractionController,须要先提InteractionProvider,它负责注入用户事件(如点击、输入等) ,而且反应事件的对应坐标。
InteractionController则定义了几乎全部至于手机的基础操做,如runAndWaitForEvents(), clickAndWaitForEvents() ,click(), longTap(), scrollSwipe(),Swipe() ,clickAndWaitForNewWindow() ,touchUp(), touchDown(), TouchMove() ,isNaturalRotation(), setRotationRight(), setRotationLeft() ,freezeRotation() ,wakeDevice(), sleepDevice() 等。事件

QueryController ip

QueryController负责把UiSelector 的查找信息转化为AccessibilityNodeInfo。
具体Api以下:findNodePatternRecursive(), translatePatternSelector(), translateReqularSelector(), translateCompoundSelector(), getRootNode() ,findAccessibilityNodeInfo()。

UiWatcher

UiWatcher只在UiSelector没法找到匹配的结果时被调用,意在重试、等待页面更新 (如弹出对话框)等。其中只有一个主要函数:checkForCondition() 。

它的相关函数均在UiDevice中,如:UiDevice.registerWatcher() ,UiDevice. resetWatcherTriggers() ,UiDevice.runWatchers() ,UiDevice.removeWatcher() 

相关文章
相关标签/搜索