您的位置:首页 > 产品设计 > UI/UE

Android UI测试框架Espresso以及代码覆盖率jacoco的使用

2017-06-14 15:23 1221 查看
该文章主要分为两个部分,第一部分大概记录一下Espresso的使用,第二部分是jacoco的使用,

一:Espresso的使用

Espresso是Google开源的安卓ui自动化测试框架,在最新的Android studio中已经将其加入了,所以很多情况我们都不需要去配置

1.配置build.grandle:(我的studio版本是2.3.3已经集成了Espresso框架)

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})


2.在我的例子中,是有一个textView和2个button,textView最初显示Hello,当点击第一个按钮之后textView显示 i am click,当点击第二个按钮的时候显示hello,针对这个例子编写MainActivity

3.编写好MainActivity 的类,右击选中MainActivity类名,选择Go to–>test

3.1



3.2创建MainActivityTest

选择create new Test(因为我这里创建过了,所以会显示MainActivityTest,第一次的话选择create new Test即可)



4.编写MainActivityTest:

这里用的是Espresso自动化测试框架,@Rule指的是这里要对哪个类进行测试

@Rule
public ActivityTestRule mActivityRule = new ActivityTestRule(MainActivity.class);


这里一共写了大概6个方法

(1)找到id为tv_show的控件检查它是否正常显示了

(2)找到text是Hello的控件检查它是否显示(这里就是我之前MainActivity中的textView,初始的时候显示值为Hello)

(3)id为bt_onclick的控件完成点击事件

(4)text为”i am click”的控件是否显示(也就是说点击后,textView的值变为i am click)

(5)id为bt_reback的控件完成点击时间

(6)text为hello的控件是否显示(点击完bt_reback按钮后text是否变为hello)

@Test
public void testInit() throws Exception {
onView(withId(R.id.tv_show)).check(matches(isDisplayed()));
onView(withText("Hello")).check(matches(isDisplayed()));
onView(withId(R.id.bt_onclick)).perform(click());
onView(withText("i am click")).check(matches(isDisplayed()));
onView(withId(R.id.bt_reback)).perform(click());
onView(withText("hello")).check(matches(isDisplayed()));
// onView(withText("i am click")).check(matches(isDisplayed()));
}


完成以上代码就可以进行简单的测试了,注意:关闭手机的动画(系统–设置–开发者选项–缩放动画等,和动画有关的都关闭,不然espresso测试会报错!)

选中MainActivityTest右击–》run MainActivityTest在run窗口里面你会看到执行是否成功,如下图:



如果说最后一行我之前注释的代码,打开,就会报错,因为点击完reback按钮textView的值不是 i am click,就会出现下面的错误图:



Espresso还可以在浏览器当中结果,具体的方法就是结合studio 的grandle,如下图:



执行connectedDebugAndroidTest之后会在build–>reports–>connected–>index.html(用浏览器打开就可以看到你的测试分析了)



注意:执行的时候要保持手机显示的状态,它会自动的去执行你要测试的一系列动作,比如点击,显示等

二 jacoco的使用:

1.配置:

其实gradle自带的有jacoco插件的,只需要引入就好了,打开build.gradle,在第一行添加插件:

apply plugin: 'jacoco'


但好像最新的studio中不配置这句话也可以用

debug 里面配置testCoverageEnabled true

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug{
testCoverageEnabled true
}
}


2.然后直接在grandle 中选择createDebugCoverageReport运行就能得到代码覆盖率分析文件了



3.在build–reports–coverage–index.html用浏览器打开,可以看到覆盖率分析文件



从这里可以看到你的代码中有哪些已经测试过,哪些没有测试过!,测试分支那些测过,哪些没有测试过!

以上就是Espresso以及jacoco 的简单入门应用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息