Android 自动化测试工具
UiAutomator 工具
UiAutomator 2.0 优点
- 获取应用 Context ,可以使用 Android 服务和接口
- 基于 Junit4,无须继承于任何父类,方法名不限,支持使用注解 Annotation
- 测试执行可使用 Instrumentation 命令方式及 gradle 方式
- API 优化,新增 UiObject2、Until、By、BySelector 等
添加依赖
androidTestImplementation 'com.android.support.test.uiautomator.uiautomator-v18:2.1.2'
使用工具
找到路径中的工具
Android\Sdk\tools\bin\uiautomatorviewer.bat
双击文件,在 Android 模拟器打开的情况下,会自动打开 UI Automator Viewer ,以获取快照
- 右边栏会显示选中的资源对应的属性
写自动化测试代码
@RunWith(AndroidUnit4.class)
public class DemoTest{
//声明测试变量
@Before
publi void initVariable(){
//初始化测试变量
}
@Test
public void realTest throw RemoteException{
//测试代码
}
@After
public void afterTest(){
//测试完成后
}
}
测试常用事件
-
获取测试设备
public Instrumentation mInstrumentation = InstrumentationRegistry.getInstrumentation;
public UiDevice mUideviece = UiDevice.getInstance(mInstrumentation);
点击最近任务键mUideviece.pressRecentApps();
-
- 查找对应 UI 元素,方式如下
- 通过 ID (ID)查找
mUidevice.findObject(By.res(ID))
- 通过名称(TEXT)查找
mUidevice.findObject(By.text(TEXT))
-
- 常用组件操作
点击
- public boolean click()
- 长按
- public boolean longClick()
- 拖动
- public void drag(Point dest)
输入
- public boolean setText(String text)
点击某个坐标
- click(int x,int y)
- 按键
- pressKeyCode(int keyCode)
- 滑动
- swip(int startX,int startY,int endX,int endY,int steps)
一些实例
根据资源 ID (“com.android.calculator2:id/digit_7”)产生点击事件
mUidevice.findObject(By.res("com.android.calculator2:id/digit_7")).click();
根据 Text 名称产生点击事件
mUidevice.findObject(By.text("7")).click();
根据资源 ID (“com.android.settings:id/switch_widget”)产生开关的点击事件
mUdidevice.findObject(By.res("com.android.settings:id/switch_widget").checked(false)).click();