自动化测试的定义,这里先引用一段维基百科的定义:android
在软件测试中,测试自动化(英语:Test automation)是一种测试方法,使用特定的软件,去控制测试流程,并比较实际的结果与预期结果之间的差别。经过将测试自动化,可让正式的测试过程当中的必要测试,能够反复进行;经过这种方法,也能够将难以手动进行的测试,交由软件来作。这种测试方法,是持续交付流程中的必要组成。编程
用我本身的话说就是,自动化测试的价值在于将重复性的测试工做经过代码和工具组织成一套可屡次使用的测试流程,按下回车键或者点击开始按钮便可泡杯咖啡喝杯茶静待其完成整个测试任务。微信
自动化测试的工具和框架有不少,近些年比较知名的有 Appium、UI Automator 等等。今天我先介绍下 UI Automator 的入门知识。框架
UI Automator 是一个跨应用(系统应用和第三方应用)的 UI 自动化测试框架,由谷歌官方维护,适用于安卓系统。注意啦~这个框架目前只支持 Android4.3(API level 18) 及以上的安卓系统。工具
UI Automator 测试框架提供了一系列的 API,这些 API 能够用来编写基于系统应用和第三方应用的自动化测试用例,例如打开系统设置页面或者启动被测应用。UI Automator 测试框架很是适合编写黑盒自动化测试,测试代码不依赖于被测应用的内部执行细节。布局
UI Automator 测试框架包含如下三个主要功能:测试
下面详细说明此三功能:
UI Automator Viewer
uiautomatorviewer 是安卓 sdk 自带的一个工具(位于'<android-sdk>/tools/bin'目录下),能够用来扫描和分析安卓设备上当前显示的应用页面,输出的结果包含页面中各 UI 组件的布局层级和各项属性。利用这些信息能够编写出更加细致的自动化测试用例。
ui
Accessing device state
UiDevice 是一个类,能够用来和测试设备上的被测应用进行交互。你能够调用它的方法获取到设备信息,诸如当前屏幕旋转角度或者显示屏大小。此外,它还能执行其余操做,例如:3d
UiDevice.pressHome()
UI Automator APIs
一组 API,经过它们,无需了解被测应用的具体实现细节,便可编写出健壮的自动化测试用例。你可使用这些 API 去捕获和操纵跨应用的 UI 组件:code
device = UiDevice.getInstance(getInstrumentation device.pressHome(); // Bring up the default launcher by searching for a UI component // that matches the content description for the launcher button. UiObject allAppsButton = device.findObject(new UiSelector().description("Apps")); // Perform a click on the button to load the launcher. allAppsButton.clickAndWaitForNewWindow();
好啦,本篇文章先是引用了维基百科中关于“自动化测试”的定义,而后说了我对于“自动化测试”的理解,最后介绍了 UI Automator 的入门知识。
其实说到底,自动化测试要作的无非就是如下三件事情:
先写到这里,下篇再分享 UI Automator 的具体应用(从环境搭建到跑通第一个自动化测试用例)。
参考资料:
https://developer.android.com/training/testing/ui-automator
欢迎关注微信公众号"测试开发Stack"