Espresso环境搭建及其基本使用

一、创建待测试项目

在Android Studio环境下创建了一个EspressoDemo项目,作为下面测试的项目。仅为演示,所以只添加了一个启动页MainActivity.

compileSdkVersion 23
buildToolsVersion 23.0.3
 
 
  • 1
  • 2
minSdkVersion 8
targetSdkVersion 23
 
 
  • 1
  • 2
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView view = new TextView(this);
        view.setText("Espresso");
        setContentView(view);
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

二、配置环境

1.设置测试环境 
为了更好的测试,建议关闭测试机的系统动画。将 设置->开发者选项 中的以下几项设置为 关闭动画

  • 窗口动画缩放
  • 过渡动画缩放
  • 动画程序时长缩放

2.在app的build.gradle文件的 defaultConfig 中添加编译配置

testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'

3.在app的build.gradle文件的 android 中添加如下代码避免编译时的License冲突

packagingOptions { 
    exclude 'LICENSE.txt'
}
 
 
  • 1
  • 2
  • 3

4.在app的build.gradle文件的 dependencies 中引入依赖包

compile 'com.android.support:appcompat-v7:23.4.0'

// Android Testing Support Library's runner and rules
androidTestCompile 'com.android.support.test:runner:0.5'

// Espresso UI Testing
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'

// Resolve conflicts between main and test APK:
androidTestCompile 'com.android.support:support-annotations:23.4.0'
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

三、创建测试类

1.刚创建的待测试项目中现在只有一个启动页MainActivity,所以创建一个测试MainActivity页面的测试类MainActivityTest,所在目录为app\src\androidTest\java\包名\MainActivityTest.java。

import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.test.suitebuilder.annotation.LargeTest;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withText;

/**
 * 测试 MainActivity
 */
@RunWith(AndroidJUnit4.class) //
@LargeTest //
public class MainActivityTest {
    @Rule //指定待测试的Activity
    public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(
            MainActivity.class);
    @Test //测试用例的测试方法皆适用此注解
    public void testTextViewDisplay(){
        onView(withText("Espresso")).check(matches(isDisplayed()));
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2.注解的意思见注释

四、运行测试方法一

这种一次只能测试一个测试用例是否通过。

1.选中待测试方法,鼠标右键选择 run ‘选中的方法名’开始测试

这里写图片描述

2.在AndroidStudio底部的Run窗口,进度条显示为绿色,表示运行通过。

这里写图片描述

五、运行测试方法二

此种方法可以一次将项目中的所有测试用例都执行一遍,并生成测试报告。在要发布版本时,可以直接测试整个项目,不用像方法一那样只能测试一个,效率低下。并且,生成的报告也可以拷贝出来长期保存。

1.在AndroidStudio中打开命令窗口 Terminal,确认路径在自己的项目根路径下,执行以下命令。

gradlew connectedAndroidTest
 
 
  • 1

执行成功后,在输出内容的最下面会显示:

BUILD SUCCESSFUL
Total time:22.63 secs
 
 
  • 1
  • 2

当然,总耗时根据每个项目的具体情况和设备性能都不一样。 
同时,这里有个坑给大家说一下,也是我遇到的,在执行这个批处理命令时,要保证你的测试机当前不处于休眠状态,否则无法完成本轮测试。原因是自动化测试也会生成页面,若果手机处于休眠状态,Activity就无法加载到手机屏幕上啊!!!

2.等待执行成功并完成所有测试用例后即可查看结果。 
生成的报告位于 app\build\reports\androidTest\connected目录下,查看的时候可以选中index.html,鼠标右键,在 Open in Browser 中选择一款自己中意的浏览器即可看到测试报告。

这里写图片描述

大家测一看到,tests显示测试用例数,为5个,花费时间3.068秒,正确率100%,还有包名com.favor.espressodemo。点击包名会显示所有的测试类。

这里写图片描述

点击某个测试类,会显示当前测试类中的测试用例列表,每一列包含了测试用例名、是否通过和花费时长。

这里写图片描述

至此,环境搭建以及基本用法就介绍完了,大家要了解的话最好自己亲手操作一下,要了解更多的知识的话,建议大家到Espresso官网上阅读一下说明文档,当然,文档是英文的。中文的话,比较详细的参考Android自动化测试-从入门到入门系列文章,在此向这位有水平有耐心的大神Anchorer表示感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值