UIAutomator快速上手
UIAutomator快速上手一、环境准备:
1、win7
2、安装带有android sdk的eclipse,即adt-bundle。我用的这个:adt-bundle-windows-x86_64-20140702
3、安装ant,并把ant的bin目录配置到系统变量path。如下图:
二、编写写自动化用例
1、用adt-bundle的eclipse新建一个java项目:UIAutomatorDemo
2、添加jar包:eclipse中选中项目,右键-Build Path-Configure Build Path,添加android.jar和uiautomator.jar
(注意这里添加的android-19里的):
3、创建包:com.uiautomator.test,新建一个类:
view plain copy
<span style="font-size:14px;">UiAutomatorDemo.class</span>
4、在\adt-bundle-windows-x86_64-20140702\sdk\tools目录下,打开UIautomatorviewer定位元素
如定位蓝牙:
5、根据UIautomatorviewer找到测试元素的属性写测试代码
测试代码如下:功能:点击设置-点击蓝牙-开启蓝牙
view plain copy
<span style="font-size:14px;">package com.uiautomator.test;
import java.io.IOException;
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;
/*
*包名:com.uiautomator.test
*作者:Adien_cui
*时间:2016-12-8上午8:16:00
*描述:UIAutomator快速上手, 用例:打开蓝牙
**/
public class UiAutomatorDemo extends UiAutomatorTestCase{
public void testSetScreenOffTime() throws Exception{
//打开系统设置页面
Runtime.getRuntime().exec("monkey -p com.android.settings -v 1");
//找到滚动列表
UiScrollable mSettingList = new UiScrollable(new UiSelector().packageName("com.android.settings").
resourceId("android:id/list"));
//点击“蓝牙”
UiObject mBlueTooth = mSettingList.getChildByText(new UiSelector().resourceIdMatches(".*title"),
"蓝牙");
mBlueTooth.clickAndWaitForNewWindow();
//开启蓝牙
UiObject mOpenBlueTooth = new UiObject(new UiSelector().resourceId("android:id/checkbox"));
mOpenBlueTooth.click();
}
}
</span>
6、此时eclipse中该项目的目录结构如下:
三、代码写好后开始编译项目
1、查找需要编译Sdk的id,命令行输入:
view plain copy
android list
2、UIAutomator自动化测试项目编译使用的是ant编译方式。此前创建的只是java项目,这时需要为项
目添加ant编译脚本。在命令行输入:
view plain copy
<span style="font-size:14px;">android create uitest-project -n projectName -t targetID -p projectPath
</span>
其中:targetID就是上一步android list 命令查到的相应id;projectName是编译目标项目的名称,也是对
应生成jar包的名称;projectPath是编译目标项目根目录路径。
所以此项目的编译的截图如下:
view plain copy
<span style="font-size:14px;">android create uitest-project -n UIAutomatorDemo -t 4 -p E:\workspace
\UIAutomatorDemo</span>
3、执行上面的命令后会在该项目的根目录生成三个文件:
说明:
build.xml: ant编译脚本
local.properties:配置本机SDK路径
project.properties:存储编译使用的APL Level。本项目是target=android-19。
4、开始编译,切到该项目的根目录(主要是build.xml所在的目录)输入命令
view plain copy
<span style="font-size:14px;">ant build</span>
此时会在该项目的bin目录下生成一个jar包。这就是用UIAutomator测试所需的最终产物:
四、测试用例执行
1、将生成的jar包推送的手机的/data/local/tmp目录下。注意:此时要连接测试手机,并打开USB调试。
命令行切换到项目的bin目录下输入:
view plain copy
<span style="font-size:14px;">adb push UIAutomatorDemo.jar /data/local/tmp</span>
如下图:
2、最后一步,执行用例。
输入:
view plain copy
<span style="font-size:14px;">adb shell uiautomator runtest <jar文件名>-c <包名.类名></span>
如:
view plain copy
<span style="font-size:14px;">adb shell uiautomator runtest UIAutomatorDemo.jar -c com.uiautomator.test
.UiAutomatorDemo</span>
:victory:
页:
[1]