UiAutomator test framework 概述
Uiautomator test framwork 一个适合应用于黑盒测试的自动化测试,它并不依赖测试应用的内部实现细节。它提供了一系列api实现了用户应用与系统应用之间的交互以此来进行图形界面的测试。
Uiautomator test framework 主要包含的功能如下所示:
- uiautomatorviewer - 方便的GUI, 显示了android 手机前端UI和内容架构以及ui组件和其属性
- uiDevice api - 提供了uiDeivce class, 该类能够对手机上正在运行的目标应用进行访问并且执行操作, 同时可以利用该类的方法去或者手机的状态属性,如屏幕大小分辨率。它实现如下操作:
- 改变手机方向
- 操作P-Pad按键
- 操作Home, Menu, Back按键
- 打开notification的下拉列表
- 当前手机界面截图
- Uiautomator APIs - 提供了apis 截取和操作多个应用间的交互操作 Uicollection,UiObject,UiScrollable,UiSelector,Configurator.
下面列举了一下API中的一些常用方法,感兴趣的可以在官网具体查找使用练习,这里不做赘述。
UiObject
- clickBottomRight()
- clickTopLeft()
- dragTo(UiObject destObj, int steps)
- dragTo(int destX, int destY, int steps)
- longClickBottomRight()
- longClickTopLeft()
- performMultiPointerGesture(PointerCoords... touches)
- performTwoPointerGesture(Point startPoint1, Point startPoint2, Point endPoint1, Point endPoint2, int steps)
- pinchIn(int percent, int steps)
- pinchOut(int percent, int steps)
- waitForExists(long timeout)
- waitUntilGone(long timeout)
UiObject2
- clear()
- click(long duration)
- clickAndWait(EventCondition<R> condition, long timeout)
- drag(Point dest)
- findObjects(BySelector selector)
- findObject(BySelector selector)
- fling(Direction direction)
- fling(Direction direction, int speed)
- getChildren()
- getParent()
- getVisibleCenter()
- hasObject(BySelector selector)
- pinchClose(float percent)
- pinchOpen(float percent)
- pinchClose(float percent, int speed)
- pinchOpen(float percent, int speed)
- scroll(Direction direction, float percent, int speed)
- wait(UiObject2Condition<R> condition, long timeout)
By
- enabled(boolean isEnabled)
- checkable(boolean isCheckable)
- clickable(boolean isClickable)
- scrollable(boolean isScrollable)
UiDevice
- findObject(BySelector selector)
- findObject(UiSelector selector)
- findObjects(BySelector selector)
- freezeRotation()
- hasObject(BySelector selector)
- openQuickSettings()
- wakeUp()