uiautomator介绍和使用

最近在学习uiautomator,网上看到的相关资料比较少,在这里做一下总结。


Uiautomator,顾名思义,是用于ui自动化测试的,主要是仿真单击,滑动,输入文本等操作,而不用人为地进行操作,如果把一组反复进行的操作用uiautomator实现,那么将大大提高效率。但是uiautomator使用范围非常有限,学习之后会知道,在uiautomator中,每一个ui控件都是UiObject的对象,并没有提供获得控件对应控件类(android.widget.*)的接口。所以在uiautomator中,一个ButtonImageView都是一样的——都是UiObject的对象。


Uiautomator很简单,只要熟悉几个类就能上手,类图如下



接下来是简单介绍uiautomator的使用步骤,具体可以看官网http://developer.android.com/tools/testing/testing_ui.html#prepare

1.创建一个java project,导入需要的库或jar包,如图


2.创建测试类,该类需继承UiAutomatorTestCase,应是如下的结构

public class MyTestCase extends UiAutomatorTestCase{


public void testXXX() throws UiObjectNotFoundException{

   }


public void testXXX() throws UiObjectNotFoundException{

   }

}

每一个publictest开头方法就是一个case。需要注意的是运行时方法的调用顺序并不是代码中的位置顺序,而是根据方法名的ASCII码大小进行顺序调用的。

3.程序编写完之后,生成配置文件

sdktool目录下运行:

android create uitest-project -n projectName -t targetID -p projectPath

我的运行参数如下,显示文件成功生成


-t后面是目标平台版本的id,可通过 android list targets查看,这里我的andorid.jaruiautomator.jar是从android-17导入的,所以选择对应的2,如图


刷新一下,在项目的顶层目录下生成三个配置文件,如图


build.xml:编译可生成项目的jar文件

local.properties:保存了sdk路径

project.proerties:保存了目标平台版本 


4.编译build.xml生成可以部署到手机设备上的项目jar文件

有两种方式:

1)终端:cd到工程目录下执行ant build

2Eclipse:将build.xml中的default改为”build“之后,右击build.xml——>run as——>ant build

此时在工程的bin目录下就会生成了CalculatorTest.jar

PS:我的Eclipse看不到该bin目录,试了很多方法都不管用,有知道的吱一声啊,谢过。。。。。。。


5.jar部署到手机并执行

adb push CalculatorTest.jar /data/local/tmp

adb shell uiautomator runtest CalculatorTest.jar -c CalculatorTestCase

jar和类都是可以指定多个,用空格分开,类名后面追加#MethodName 则只运行某一方法,否则执行所有方法

注意:类名必须是全称,即包括包名,这里是在默认包下

此时会输出如下信息


current:当前运行的测试顺序编号,故和方法名有关

class:当前运行方法所在类的类名

numtests:测试总数,一个public testXXX方法就是一个测试

test:当前测试的方法名

INSTRUMENTATION_STATUS_CODE:测试状态码,一般1是正在测试,0是测试通过,-1是错误



最后介绍一下uiautomatorViewer这个工具,编写case是基本都用到它,这个工具在sdktools下。该工具用于捕捉并解析设备当前界面的组成结构(右上),点击控件,会显示控件的各种详细信息(右下),帮助我们在编程中方便地找到该控件。如图




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值