Android自动化测试之UIAutomator
写在最前面,因为我们的项目使用aar模块化打包,之前写的appium程序没法用了,原因是页面的id无法识别了。现在正在看怎么处理,or其他类似的框架都是怎么干活的。用了好几天,终于把uiautomator调试通过了。汗,真心复杂。。。
文档:
http://developer.android.com/tools/help/uiautomator/index.html
http://developer.android.com/tools/testing/testing_ui.html
why UIAutomator
作为亲儿子UiAutomator随Android同步推出,随Android版本同步升级,经过多次迭代目前已经相当稳定。 相比MonkeyRunner,UiAutomator接口丰富易用,可以支持所有Android事件操作,事件操作不依赖于控件坐标,可以通过断言和截图验证正确性,非常适合做UI测试。
UIAutomator不需要测试人员了解代码实现细节,属于功能和黑盒测试。测试代码结构简单,编写容易,学习曲线低。基于JAVA,一次编译可以运行于所有Android设备。
注: UIAutomator不适合OpenGL和HTML为主的程序,因为这类程序未使用Android的view体系。并且手机版本需要在4.1之上。
uiautomatorviewer
uiautomatorviewer位于sdk/tools目录下,可以扫描、分析待测试应用界面,分析结果可以导出为xml与截图。通过该工具可以分析出UI控件的id,text,focusable等等各种属性,甚至布局上的层次关系。
可以通过./uiautomatorviewer
启动该工具。
uiautomator
uiautomator是一个包含一套UI测试API,和支持运行测试程序的JAR包。该JAR包位于
sdk/platforms/android-*/uiautomator.jar.
使用时需要注意自己的SDK版本需要大于16, SDK Tools版本需要大于21.