1.简单介绍下 :
a.这个 是一套安卓的测试框架,可以模拟一些人在手机上的操作,比如 ,点击,拖动,长按等..
b. 1.0 和2.0 版本改动很大,建议使用2.0版本,
c.UiAutomator 使用java语言编写.
d.UiAutoMator 据我目前的了解,只能抓取原生的安卓界面.不能找到app内嵌套的网页等..
2. 使用
1. 必要准备,必须搭建安卓开发环境 (可参考我的博客,我使用的安卓对呀的版本都是这篇博客上面的 https://blog.csdn.net/u012930316/article/details/90313443 )
2. 启动一个模拟器或者连接一个真机, 这里使用adb命令(关于adb的,可以去看另外的博客这里不写了)
3. 打开as ide,新建一个安卓项目 ,安卓版本可以选择 5.1 版本的,也可以更高,我这里选择5.1版本
新建完成后,引入uiautomator的包
在 app 目录下的build.gradle 添加
implementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
这里图片上标记错了,是下面这行...
如图:
然后可以正式写代码了
新建test
@RunWith(AndroidJUnit4.class)
public class MKTest {
public Instrumentation minstrumentation;
public UiDevice mUiDevice;
@Before
public void setUp() {
minstrumentation = InstrumentationRegistry.getInstrumentation();
mUiDevice = UiDevice.getInstance(minstrumentation);
}
@Test
public void testDemo() throws RemoteException {
// 查看最近任务
mUiDevice.pressRecentApps();
}
@Test
public void isScreenOn() throws RemoteException {
if(!mUiDevice.isScreenOn()){ //唤醒屏幕
mUiDevice.wakeUp();
}else{
Log.i(TAG, "isScreenOn: 屏幕已经是亮的");
}
}
@Test
public void findDemo() {
// 这里运行的是计算器,系统自带的计算器界面 模拟点击
// 通过资源id的方式去找按钮,并点击一下
// UiObject2 object = mUiDevice.findObject(By.res("com.android.calculator2:id/digit_7"));
// 通过 按钮上的text 属性来查找
UiObject2 object = mUiDevice.findObject(By.text("7"));
if (object != null){
object.click();
}
}
}
在testDemo上 右键 run运行 ,选择要运行的手机环境(就是我们第二步的那个,想正常的安卓开发一样 ,就可以再模拟器上,或真机上看到 手机会系统打开,并且查看最近的任务.