zoukankan      html  css  js  c++  java
  • uiautomator

    http://www.csdn.net/tag/uiautomatorViewer


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

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

       }

    }

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

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

    sdk的tool目录下运行:

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

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

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

     

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

     

     

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

    local.properties:保存了sdk路径

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

     

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

    有两种方式:

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

    (2)Eclipse:将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是基本都用到它,这个工具在sdk的tools下。该工具用于捕捉并解析设备当前界面的组成结构(右上),点击控件,会显示控件的各种详细信息(右下),帮助我们在编程中方便地找到该控件。如图

  • 相关阅读:
    data guard switchover切换异常
    oracle dataguard
    建立信任关系
    sqlplus 打印很乱,而且很短就换行
    老友记英语
    每天读一遍
    extern的用法
    linux信号处理
    http server v0.1_http_parse.c
    http server v0.1_http_webapp.c
  • 原文地址:https://www.cnblogs.com/fenqing3108/p/5740168.html
Copyright © 2011-2022 走看看