51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1250|回复: 0
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    奋斗
    2021-8-6 16:14
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-4-11 14:14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    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相关的引用;

            解释一下exclude group: 'javax.inject',如果项目中有用Dagger或者Dagger2的话(Dagger是一个好东
    西),不加这行会编译失败的.

    复制代码
    1. apply plugin: 'com.android.application'

    2. android {
    3.     compileSdkVersion 22
    4.     buildToolsVersion "22.0.1"

    5.     defaultConfig {
    6.         applicationId "com.example.yezhenrong.myapplication"
    7.         minSdkVersion 15
    8.         targetSdkVersion 22
    9.         versionCode 1
    10.         versionName "1.0"
    11.         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    12.     }
    13.     buildTypes {
    14.         release {
    15.             minifyEnabled false
    16.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    17.         }
    18.     }
    19.     packagingOptions {
    20.         exclude 'LICENSE.txt'
    21.     }
    22. }

    23. dependencies {
    24.     compile fileTree(dir: 'libs', include: ['*.jar'])
    25.     compile 'com.android.support:appcompat-v7:22.1.1'

    26.     // Espresso 相关的引用
    27.     compile 'com.android.support:support-annotations:22.1.1'
    28.     androidTestCompile 'com.android.support:support-annotations:22.1.1'
    29.     androidTestCompile('com.android.support.test.espresso:espresso-core:2.1'){
    30.         exclude group: 'javax.inject'
    31.     }
    32.     androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.1'
    33.     androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.1'
    34.     androidTestCompile 'com.android.support.test:runner:0.2'
    35. }
    复制代码

    复制代码


    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()里面:

    复制代码
    1. ...

    2. import static android.support.test.espresso.Espresso.onView;
    3. import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
    4. import static android.support.test.espresso.matcher.ViewMatchers.withText;

    5. @RunWith(AndroidJUnit4.class)
    6. public class MainActivityTest {
    7.     @Rule
    8.     public ActivityTestRule mActivityRule = new ActivityTestRule(MainActivity.class);

    9.     @Test
    10.     public void testTextViewDisplay() {
    11.         onView(withText("Hello world!")).check(ViewAssertions.matches(isDisplayed()));
    12.     }
    13. }
    复制代码

    复制代码


            onView(withText("Hello world!")).check(ViewAssertions.matches(isDisplayed()));

            这行代码都是顾名思义就能猜出意义,大概意思是根据"Hello world!"找到指定的view,然后检查这个view
    是否isDisplayded(可见).

            Espresso提供的UI自动化的API很丰富,这里有个简单的他们类的层级关系.

            Espress推荐写测试用例的时候使用static import来简化代码.在Android Studio中,static import的快捷键是,
    当你输入了"onView",然后按键盘的Alt+Enter会出现一个菜单选static import那个就搞定了!(如下图)





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


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-17 22:48 , Processed in 0.065381 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表