android中UIAUTOMATOR

UIAutomator:可用於单元测试、性能测试、压力测试、ROM层级的测试、或是App间协作须跨进程的测试,对于Web测试则暂不支持。其优点如下:
官方支持更新:Android原生支持,测试依赖环境少,创建方便。
层次接口明晰:框架层次结果分明,API明晰,上手成本很低。
基于控件交互:支持Android原生控件解析,比座标交互兼容性更强。
不依赖于源码:测试过程基于黑盒进行,对所有发行版本都可以测试。
事件等待优秀:在事件等待方面接口丰富,控制灵活精确,表现优秀。
支持跨进程测试: 在自动化框架中,具备此特性的不多,测试范围在ROM层面。
优点:
(1)可以对所有操作进行自动化,操作简单;
(2)不需要对被测程序进行重签名,且,可以测试所有设备上的程序,比如某APP,比如拨号,比如~发信息等等
(3)对于控件定位,要比robotium简单一点点
缺点:
(1)uiautomator需要android level 16以上才可以使用,因为在level 16及以上的API里面才带有uiautomator工具
(2)如果想要使用resource-id定位控件,则需要level 18及以上才可以
(3)对中文支持不好(不代表不支持,第三方jar可以实现

使用:本人Studio3.5
!在这里插入图片描述在这里插入图片描述!导入的依赖
在SDK目录下tools/bing/uiautomatorviewer.bat双击打开视图共具
在androidText目录下创建测试类,
在测试类中写一个测试方法,方法名必须以test开头,并抛异常
// 获取设备对象
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
UiDevice uiDevice = UiDevice.getInstance(instrumentation);
// 获取上下文
Context context = instrumentation.getContext();
// 启动测试App
Intent intent = context.getPackageManager().getLaunchIntentForPackage(“com.yang.desig nsupportdemo”);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
//测试方法
@Test
public void testApp() {
try {
uiDevice.pressHome();
Thread.sleep(1000);
UiObject testAuto = uiDevice.findObject(new UiSelector().text(“Test”));
testAuto.click();
Thread.sleep(1000);
/可以通过QQ截屏获取控件的座标来进行点击/
/uiDevice.click(924, 626);/
UiObject home = uiDevice.findObject(new UiSelector().text(“首页”));
home.click();
Thread.sleep(1000);
UiObject button = uiDevice.findObject(new UiSelector().text(“BUTTON”));
button.click();

    } catch (Exception e) {
        e.getMessage();
    }

}

运行:右键点击Run测试方法,查看Run运行log
详细Api可查看同僚的微博
https://blog.csdn.net/fmc088/article/details/80532993

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章