UIAutomatorviewer
关于onView()方法,我们需要首先知道目标控件的一些属性值,然后再围绕我们的目标属性构建一个匹配规则。但有些时候,控件的属性并不是那么明显,或者并没有那么容易获取到,这时,我们可以使用Android提供的uiautomatorviewer工具帮助我们进行分析。
工具目录android-sdk/tools/uiautomatorviewer.bat
打开如下:
映射UIView
将手机连接到设备上,在手机上启动一个需要测试的目标页面,然后点击uiautomatorviewer左上角的第二个按钮(Device Screenshot(uiautomator dump)),便可以把当前页面截下来了:
如上所示,我截取了一张答疑君APP登录页面的截图。可以看到,uiautomatorviewer的界面分成了3个部分:
- 左边部分:显示当前屏幕的截图。在这个部分,我们可以对这个页面上的各个控件做一些选中的操作。
- 右上角部分:显示当前页面的View层级。
- 右下角部分:显示当前选中控件的各个属性。
比如说,我现在想要做一个登录的测试用例,我需要在“账号”和“密码” 的输入框中输入一些内容,然后点击“登录”按钮执行登录。首先,我选中填写账号的EditText:
onView(withId(R.id.editName))
便找到了这个EditText。然后,向这个EditText中输入账号信息:
onView(withId(R.id.editName)).perform(click(), replaceText("..."), closeSoftKeyboard())
就完成了一个表单的输入。