zoukankan      html  css  js  c++  java
  • Uiautomator之入门

    优点:1.可以对所有操作进行自动化,操作简单;

         2.不需要对被测程序进行重签名,且,可以测试所有设备上的程序,比如~某APP,比如~拨号,比如~发信息等等

         3.对于控件定位,要比robotium简单一点点

    缺点:1.uiautomator需要android level 16以上才可以使用,因为在level 16及以上的API里面才带有uiautomator工具

         2.如果想要使用resource-id定位控件,则需要level 18及以上才可以

         3.对中文支持不好(不代表不支持,第三方jar可以实现)

         4.个人感觉,控件定位不如robotium那样层级分明,仅仅个人感觉,用户行为注入还是和插桩有点点区别的

    第一步、环境准备:

    1.JDK1.8(1.7我试验了果断不好使,一点不惯病)

    2.eclispse(IDE尊崇个人意愿)

    3.android SDK以及配置

    4.ANT(主要用于build我们的脚本,生成jar包)

    ant的搭建主要分几步:1.下载ant安装文件并且解压安装;

                                  2.新建系统环境变量ANT_HOME,参数值是你的ant安装目录;

                                  3.在Path环境变量中添加ant安装目录的bin文件夹,比如我的就是C:codapache-ant-1.9.6in

                                  4.配置完以后,测试一下,在命令行下输入ant -version,如果显示你所安装的ant版本信息,证明环境变量配置成功

    第二步、建立我们的测试工程:

    一、建立Java Project(普通Java项目)

    二、添加依赖jar

          对应安卓版本的jar,如我的是android-18

      android.jar
      uiautomator.jar

    三、在测试工程src文件夹中add package,然后添加一个class文件,

    随便写一个测试类:

    如下:

    package com.uiautomator.www;
    import com.android.uiautomator.core.UiDevice;
    import com.android.uiautomator.core.UiObject;
    import com.android.uiautomator.core.UiSelector;
    /**
     * 测试点击HOME键,启动51CTO应用
     */
    import com.android.uiautomator.testrunner.UiAutomatorTestCase;
    
    /**
     * 
     * @author Administrator
     *    
     *
     */
    public class Demo extends UiAutomatorTestCase{
    
        public  void testDemo() throws Exception{
            UiDevice device = UiDevice.getInstance();
            if (device.isScreenOn()) {
                device.wakeUp();
            }
            UiObject object = new UiObject(new UiSelector().text("51CTO学院"));
            object.click();
        }
    }

    四、查看当前查看对应android版本的SDK的ID值

    android list target

    五、创建测试:

    运行命令:android create uitest-project -n <name> -t <android-sdk-ID> -p <project_path>
    比如:

    android create uitest-project -n AutoRunner -t 2 -p F:workspaceDemoTest

     说明:

    上面的name就是将来生成的jar包的名字,可以自己定义;android-sdk-ID就是上面看到的对应android版本的SDK id;path是Eclipse里刚才建立的测试工程的路径;运行命令后,将会在工程的根目录下生成build.xml文件。如果没生成,检查上面的步骤。

    六、j编译生成jar

    CMD进入测试工程目录,然后运行ant build,将使用ant编译生成jar,成功将会提示:

    成功后,会在工程bin目录下生成对应名称的jar包

    七、将jar包push到手机data/local/tmp目录下,

    对应的命令是:adb push <jar文件路径> data/local/tmp

    adb push AutoRunner.jar /data/local/tmp

    八、运行测试:

    然后使用命令行启动我们已经push进去的uiautomator脚本

    adb shell uiautomator runtest <jar文件名> -c <工程中的类名(包含包名)>

    adb push AutoRunner.jar /data/local/tmp

    例:

    adb shell uiautomator runtest AutoRunner.jar -c com.uiautomator.www.Demo

    完成这一步后,手机会执行uiautomator脚本并且开始进行操作

  • 相关阅读:
    图的广度优先搜索
    图的深度遍历
    图的邻接表的实现
    求1+2!+3!+...+20!的和。
    CSS用户界面样式
    CSS三角
    CSS字体图标技术
    CSS精灵技术
    CSS元素的显示和隐藏
    CSS定位
  • 原文地址:https://www.cnblogs.com/longronglang/p/6431304.html
Copyright © 2011-2022 走看看