51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1379|回复: 1
打印 上一主题 下一主题

UIAutomator快速上手

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-17 14:14:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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,新建一个类:
[java] view plain copy
<span style="font-size:14px;">UiAutomatorDemo.class</span>  

4、在\adt-bundle-windows-x86_64-20140702\sdk\tools目录下,打开UIautomatorviewer定位元素


如定位蓝牙:


5、根据UIautomatorviewer找到测试元素的属性写测试代码
测试代码如下:功能:点击设置-点击蓝牙-开启蓝牙
[java] 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,命令行输入:
[plain] view plain copy
android list  



2、UIAutomator自动化测试项目编译使用的是ant编译方式。此前创建的只是java项目,这时需要为项
目添加ant编译脚本。在命令行输入:
[plain] 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是编译目标项目根目录路径。
所以此项目的编译的截图如下:
[plain] 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所在的目录)输入命令
[plain] view plain copy
<span style="font-size:14px;">ant build</span>  



此时会在该项目的bin目录下生成一个jar包。这就是用UIAutomator测试所需的最终产物:


四、测试用例执行

1、将生成的jar包推送的手机的/data/local/tmp目录下。注意:此时要连接测试手机,并打开USB调试。
命令行切换到项目的bin目录下输入:
[plain] view plain copy
<span style="font-size:14px;">adb push UIAutomatorDemo.jar /data/local/tmp</span>  
如下图:


2、最后一步,执行用例。
输入:
[plain] view plain copy
<span style="font-size:14px;">adb shell uiautomator runtest <jar文件名>-c <包名.类名></span>  
如:
[plain] view plain copy
<span style="font-size:14px;">adb shell uiautomator runtest UIAutomatorDemo.jar -c com.uiautomator.test
.UiAutomatorDemo</span>  


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-17 22:21 , Processed in 0.063866 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表