51Testing软件测试论坛
标题:
Android Espresso(UI自动化测试)的搭建
[打印本页]
作者:
一纸荒年
时间:
2018-4-11 14:14
标题:
Android Espresso(UI自动化测试)的搭建
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是一个好东
西),不加这行会编译失败的.
复制代码
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'
}
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";
[attach]113255[/attach]
3) 修改新Configuration的名字,选中App Module,输入Runner,选择"Show chooer dialog".
点击"OK"完成!
[attach]113256[/attach]
4. 新建测试用例了类.
在app/androidTest/java下新建一个类,比如如下图MainActivityTest.class,这个就是我们具体的测试用例的类了.
[attach]113257[/attach]
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很丰富,这里有个简单的他们类的层级关系.
Espress推荐写测试用例的时候使用static import来简化代码.在Android Studio中,static import的快捷键是,
当你输入了"onView",然后按键盘的Alt+Enter会出现一个菜单选static import那个就搞定了!(如下图)
[attach]113258[/attach]
6. 运行测试用例,查看运行结果.
[attach]113259[/attach]
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2