美文网首页
Android Espresso(UI自动化测试)的搭建

Android Espresso(UI自动化测试)的搭建

作者: 槐树向北 | 来源:发表于2017-02-15 09:28 被阅读80次

    Espresso是Google官方提供的Android UI自动化测试的框架.
    为什么叫Espresso(浓咖啡),好像是想让Android码农们轻松的写完自动化用例后能享受着咖啡,看着自动化测试"飞".
    这是Espresso官方的地址.另外,也推荐大家看这个YouTube上关于Espresso环境搭建的短视频.

    Espresso环境搭建
    下面将基于Android Studio,介绍如何搭建Espresso.
    1. 在Android Studio中新建一个Project;
    2. 修改Project中App/build.gradle脚本;
    主要修改3处:
    1) 在defaultConfig内增加,testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner",用来运行脚本;
    2) 增加packagingOptions,避免编译时候Liscens的冲突;
    3) 在dependencies中增加Espresso相关的引用;

    apply plugin: 'com.android.application' android {
          
          compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { 
          applicationId "com.example.yezhenrong.myapplication" 
          minSdkVersion 15 
          targetSdkVersion 22 
          versionCode 1 
          versionName "1.0" 
          testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
       release { 
         minifyEnabled false 
         proguardFiles 
         getDefaultProguardFile('proguard-android.txt'), 
        'proguard-rules.pro' 
       } 
    } 
    packagingOptions { 
    exclude 'LICENSE.txt' }
    }
    dependencies { 
      compile fileTree(dir: 'libs', include: ['*.jar']) 
      compile 'com.android.support:appcompat-v7:22.1.1'  // Espresso 相关的引用
      compile 'com.android.support:support-annotations:22.1.1' 
      androidTestCompile 'com.android.support:support-annotations:22.1.1' 
      androidTestCompile('com.android.support.test.espresso:espresso-core:2.1'){
        exclude group: 'javax.inject' //support 2.3  
      } 
      androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.1' 
      androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.1' 
      androidTestCompile 'com.android.support.test:runner:0.2' 
    }
    

    3. 添加Espresso的TestRunner.
    1) 点击顶栏菜单Run->Edit Configurations;
    2) 出现如下的窗口后,点击左上角的"+",选择"Android Tests";


    3) 修改新Configuration的名字,选中App Module,输入Runner,选择"Show chooer dialog".
    点击"OK"完成!

    4. 新建测试用例了类.
    在app/androidTest/java下新建一个类,比如如下图MainActivityTest.class,这个就是我们具体的测试用例的类了.

    5. 开始写测试用例了.
    1) 首先创建一个@Rule,ActivityTestRule用来指明被测试的Activity;
    2) 测试用例的方法都是@Test的Annotation注解的,方法名字可以随意.
    还可以写setup()和tearDown()方法.
    没错,Espresso的测试框架就是基于Junit的.
    3) 测试方法testTextViewDisplay()里面:

    ... import static android.support.test.espresso.Espresso.onView;
    import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
    import static android.support.test.espresso.matcher.ViewMatchers.withText;  
      @RunWith(AndroidJUnit4.class)public class MainActivityTest { 
      @Rule public ActivityTestRule mActivityRule = 
      new ActivityTestRule(MainActivity.class); 
      @Test public void testTextViewDisplay() {
       onView(withText("Hello world!")).
       check(ViewAssertions.matches(isDisplayed())); 
       }
    }
      onView(withText("Hello world!")).
    check(ViewAssertions.matches(isDisplayed()));
    
        这行代码都是顾名思义就能猜出意义,大概意思是根据"Hello world!"找到指定的view,然后检查这个view是否isDisplayded(可见).
        Espresso提供的UI自动化的API很丰富,[这里有个简单的他们类的层级关系](https://code.google.com/p/android-test-kit/wiki/EspressoV2CheatSheet).
        Espress推荐写测试用例的时候使用static import来简化代码.在Android Studio中,static import的快捷键是,当你输入了"onView",然后按键盘的Alt+Enter会出现一个菜单选static import那个就搞定了!(如下图)
    

    6. 运行测试用例,查看运行结果.

    扩展阅读
    Espresso(-第一个项目)
    Espresso-ViewMatchers.java
    Espresso-ViewActions.java

    相关文章

      网友评论

          本文标题:Android Espresso(UI自动化测试)的搭建

          本文链接:https://www.haomeiwen.com/subject/nbafwttx.html