使用Espresso作为测试工具

标签: espresso 作为 测试 | 发表时间:2016-06-13 13:49 | 作者:wxynxyo
出处:http://www.iteye.com
   Youtube上面关于Espresso单独出了三期的内容讲解Espresso作为整合Unit Test, Instrument Test,end-to-end test等。我试了一下,感觉还不错。

   官网地址: https://google.github.io/android-testing-support-library/docs/index.html

   GitHub: https://github.com/googlesamples/android-testing/tree/master/ui/espresso


   我在一个已有的项目里面加入测试用例代码

   1. 引入依赖包(使用2.2.2会需要23.1.1,这边会有ERROR曝出, 故降未2.2.1)

    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    androidTestCompile 'com.android.support.test:rules:0.4.1'


   2. 设置编译配置
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"


   3.针对登录页面的测试,三个测试case,测试用户名不能为空,测试密码不能为空和输入用户名和密码测试正确性
/**
 * 登录测试
 */
@RunWith(AndroidJUnit4.class)
@LargeTest
public class LoginFragmentText {

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

    private MainActivity mainActivity;

    //这里进入以后 有一个主Fragment, 下面是4个按钮,点击其中一个进入登录页面
    @Before
    public void switchToLogin () {
        LogUtils.debug("switchToLogin...");
        onView(withId(R.id.btnProfileID)).perform(click());

        mainActivity = mActivityRule.getActivity();
    }

    //提示都是Toast弹窗提示(下同)
    @Test
    public void testUsernameNotEmpty() {
        onView(withId(R.id.login_login_btn)).perform(click());
        
        onView(withText("用户名不能为空")).inRoot(withDecorView(not(mainActivity.getWindow().getDecorView()))).check(matches(isDisplayed()));
    }

    @Test
    public void testPasswordNotEmpty() {

        //注入用户名
        onView(withId(R.id.login_username)).perform(click(), clearText(), typeText("1234567"), closeSoftKeyboard());

        //点击登录按钮
        onView(withId(R.id.login_login_btn)).perform(click());
        //弹窗提示
        onView(withText("密码不能为空")).inRoot(withDecorView(not(mainActivity.getWindow().getDecorView()))).check(matches(isDisplayed()));
    }

    @Test
    public void testLogin () {
        //注入用户名
        onView(withId(R.id.login_username)).perform(typeText("1234567"), closeSoftKeyboard());
        //注入密码
        onView(withId(R.id.login_password)).perform(typeText("123456"), closeSoftKeyboard());
        //点击登录按钮
        onView(withId(R.id.login_login_btn)).perform(click());
        //弹窗提示 登录成功
        onView(withText("登录成功")).inRoot(withDecorView(not(mainActivity.getWindow().getDecorView()))).check(matches(isDisplayed()));
    }
}


测试的时候,尤其是EditText输入框容易受到手机安装的输入法的影响,可能会出现输入不进入的情况, 这个时候可以用Thread.sleep(XXXX)来暂停捕获画面,比以前的Selenium好用多了

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [espresso 作为 测试] 推荐:

使用Espresso作为测试工具

- - 移动开发 - ITeye博客
   Youtube上面关于Espresso单独出了三期的内容讲解Espresso作为整合Unit Test, Instrument Test,end-to-end test等.    官网地址: https://google.github.io/android-testing-support-library/docs/index.html.

作为一名软件测试工程师,需要具备哪些能力?

- - 知乎每日精选
1.基本计算机知识(操作系统,数据库,通讯协议原理,熟悉至少一门编程语言). 2.基本软件测试知识(各种测试理论,测试方法论,测试用例编写,缺陷界定标准,软件质量评估). 1.熟悉所测产品功能,能够将产品文档内描述的UC转化成TC,这个最最基本. 2.熟悉所测产品的一些隐藏需求或者功能(业务上的进阶能力).

测试

- 香姜 - 韩寒
测试......>>点击查看新浪博客原文.

Android单元测试与模拟测试

- - 神刀安全网
考虑可读性,对于方法名使用表达能力强的方法名,对于测试范式可以考虑使用一种规范, 如 RSpec-style. 不要使用逻辑流关键字(If/ese、for、do/while、switch/case),在一个测试方法中,如果需要有这些,拆分到单独的每个测试方法里. 测试真正需要测试的内容,需要覆盖的情况,一般情况只考虑验证输出(如某操作后,显示什么,值是什么).

免费测试VPN

- 勇 - iGFW
lusovps目前提供免费15天的PPTP VPN试用服务,. 申请地址:https://cart.lusovps.com/cart.php?a=add&pid=13. WHMCS注册系统,可以参考 http://igfw.tk/archives/3727. 注册后无需审核,立刻激活,帐号信息会发至邮箱.

HTTP负载测试

- - 博客 - 伯乐在线
英文原文: ON HTTP LOAD TESTING 来源: oschina. 有很多人在谈论HTTP服务器软件的性能测试,也许是因为现在有太多的服务器选择. 这很好,但是我看到有人很多基本相同的问题,使得测试结果的推论值得怀疑. 在日常工作中花费了很多时间在高性能代理缓存和源站性能测试方面之后,这里有我认为比较重要的一些方面来分享.

Android单元测试

- - CSDN博客推荐文章
    单元测试不管对于初学编程还是已经工作了很久的开发者来说,都不乐意花时间去写认为没用的代码进行测试,只要交给测试人员就行了,虽然这样也能把软件改出来,但也许你要花上几倍的时间去修改问题,如果在开发的过程中花点时间去写单元测试代码,把尽可能出问题的地方都测试一遍,把问题扼杀在最开始的地方,这样你就不必为后来找问题出处而烦恼.

mongodb性能测试

- - 数据库 - ITeye博客
1) Mongodb的非安全插入方式,在一开始插入性能是非常高的,但是在达到了两千万条数据之后性能骤减,这个时候恰巧是服务器24G内存基本占满的时候(随着测试的进行mongodb不断占据内存,一直到操作系统的内存全部占满),也就是说Mongodb的内存映射方式,使得数据全部在内存中的时候速度飞快,当部分数据需要换出到磁盘上之后,性能下降很厉害.

Android集成测试

- - 百度质量部 | 软件测试 | 测试技术 | 百度测试
  Android集成测试主要是在单元测试的基础上测试接口访问或者异步任务是否正确,在. 移动凤巢系统中,大概有30+个接口需要测试,他们都遵循一个特定的访问模式:前台的. Activity获取到触发事件后,将它传给这些接口,这些接口都是AsyncTask的实现——即后台. 异步线程执行某个任务(一般是发送http请求到后端服务或者执行存取数据库等耗时操作),.

测试touch事件

- - Kejun's Blog
进入触屏时代意味一切要对触屏友好. 今天仅仅测试了ios6,其它版本包括android还不清楚差别有多大. 看了PPK的touch兼容表(http://www.quirksmode.org/mobile/tableTouch.html),深感刚准备告别ie6,又迎来了一个新的混乱时代,苦逼的前端工程师们永远摆脱不了兼容的魔咒.