[Android自动化测试]UiAutomator入门

来源:互联网 发布:java时区转换 编辑:程序博客网 时间:2024/06/11 10:59

今天第一次接触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

原创粉丝点击