今天第一次接触UiAutomator来做自动化测试,所以记录一下第一次使用UiAutomator的过程吧
首先是根据网上各种UiAutomator的各种教程搭建好java的环境,这里我看的是http://www.cnblogs.com/peng-lan/p/5923350.html(引用一下博主应该不会介意吧嘻嘻嘻),博主写的搭建过程还是蛮详细的。这里记得用sdk manager根据自己想测试的Android版本安装开发包,我用的是Android6.0。
安装好之后就是安装eclipse,推荐下载release包,不用安装即可使用值得拥有(网址:https://www.eclipse.org/downloads/eclipse-packages/),然后就是各种配置了。
接下来打开Eclipse新建project,然后在src目录下添加package,在package新建类,建完如下:
记得右键点击工程名字->Bulid Path->Configure Bulid Path在里面添加sdk开发包:
选择你安装的sdk的目录里面的platforms目录,再进到你下载的Android开发包的目录,添加里面的android.jar和uiautomator.jar
接下来你需要uiautomatorview来获取你手机上的控件,才能更好地设计你的代码,它在你的sdk安装目录的tools文件夹里,这里以我自己的手机为例,使用界面如下:
点击你想找的控件,可以在右下角看到各种信息,之后就可以在UiAutomatorDemo2.java中打代码了:
/**
*
*/
/**
* @author Ming丶彬
*
*/
package com.uiautomator.test2;
import java.io.IOException;
import android.graphics.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.os.SystemClock;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class UiAutomatorDemo2 extends UiAutomatorTestCase{
public void testSetScreenOffTime() throws UiObjectNotFoundException, IOException{
//打开系统设置页面
getUiDevice().pressHome();
sleep(3000);
UiDevice uiDevice = getUiDevice();
//打开设置
UiObject setting = new UiObject(new UiSelector().text("设置"));
//System.out.println(setting.isClickable());
Rect r = setting.getBounds();
System.out.println(r.centerX());
System.out.println(r.centerY());
UiDevice.getInstance().click(r.centerX(),r.centerY());
try {
Thread.sleep(3000);
}catch(InterruptedException e) {
e.printStackTrace();
}
}
}
这是一个简单的按一下Home返回主界面然后找到“设置”并点击,这里如果你的代码中像我一样如果出现了中文的话,记得在project的属性中设置编码,否则会报错找不到控件:
之后cmd进入sdk安装目录的tools目录下,执行:
android list查看sdk版本的id
android create uitest-project -n <name> -t <android-sdk-ID> -p <path>
其中name为将来生成的jar包的名字,可以自己定义,android-sdk-ID为找到的sdk版本的id,path是工程的路径名称
如:android create uitest-project -n AutoRunner -t 1 -p E:\code\UiAutomatorDemo2
这时候在工程目录下会出现一个build.xml文件,cmd在工程目录下执行ant build会在bin目录下生成jar包,将手机连接电脑,将jar包push进手机:
adb push <jar文件路径> data/local/tmp
实际为:adb push E:\code\UiAutomatorDemo2\bin\AutoRunner.jar data/local/tmp
执行jar包:adb shell uiautomator runtest <jar文件名> -c <包名.类名>
实际命令:E:\code\UIAutomatorDemo2\bin>adb shell uiautomator runtest AutoRunner.jar -c com.uiautomator.test2.UiAutomatorDemo2(包名、类名一定要对应)
执行后cmd结果如下:
可以在手机上可以看到它自动返回了主界面并且点击了“设置”按钮,这里放不了手机的录屏没法展示出来了orz