zoukankan      html  css  js  c++  java
  • Android Studio下运行UiAutomator

    之前学习UiAutomator均是在eclipse下,因学习Android开发接触AS越来越频繁,于是想知道AS下如何建立UiAutomator项目。网上的资料多很凌乱,查了很多资料,实践后发现,只要找对了步骤,AS下比eclipse下部署运行简单的多。

    步骤总结如下:

    一、新建一个项目,和Android项目的区别是不要创建Activity(Add No Activity)

    二、新建项目完成后,修改gradle文件

    添加最后一行:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.1.1'
        //引入Uiautomator
        androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
    }

    Gradle sync后,可以看见在External Libraries目录下生成了uiautomator-v18-2.1.1目录,这时候表示uiautomator库已经成功导入了。

    三、编写测试用例

    这部分遇到了两个困难:

    ①和eclipse可以用命令行编译执行不同,AS全部集成在内部了,一般情况下点击该测试方法右键,直接run就行

    但是如果右键没有run选项,不知道怎么运行怎么办呢

    可以先点击AS左侧边栏Build Variants查看Test Artifact选项,选择Andriod Instrumentation Tests, 再点击左侧边栏Structure,找到该测试方法,右键点击看是否可以运行。

    ②或许是因为1.0和2.0的关系(2.0被instrumentation收编了,有些1.0的方法在2.0被弃用了),这一个简单的点击home键的用例折腾了半天,才运行起来。

    public class Test extends InstrumentationTestCase {
    //public class Test extends UiAutomatorTestCase {
    
        public void testHome(){
            UiDevice.getInstance(getInstrumentation()).pressHome();
            //UiDevice.getInstance().pressHome(); (UiDevice.getInstance()已经被弃用)
            //UiDevice device = getUiDevice(); (getUiDevice()找不到该方法)
            //device.pressHome();
        }
    
    }

    2.0不用再继承UiAutomatorTestCase,但却需要继承InstrumentationTestCase。

    获取设备的方式也变化了,UiDevice.getInstance(getInstrumentation()) 这才是正确的使用方法。之前常用的两种方式都不再可行。

    1.0和2.0的API区别后续得好好熟悉熟悉。

  • 相关阅读:
    sql优化的几种方法
    webService使用
    Springboot 项目pom.xml 配置文件以及启动类的一些配置
    WebSocket消息推送(群发和指定到个人)
    有n级台阶,每次爬1或者2级台阶,用程序计算有多少种爬法
    对两个字符串进行比较,取出两个字符串中一样部分的长度
    java 日志 log4j
    进制转换
    java 调用第三方动态链接库
    如何使用 OpenFileDialog 组件
  • 原文地址:https://www.cnblogs.com/biang/p/6266222.html
Copyright © 2011-2022 走看看