`

使用Espresso作为测试工具

 
阅读更多
   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好用多了
分享到:
评论

相关推荐

    Android-一个kotlin库以简化如何在Android上进行espresso测试

    然而,尽管Espresso本身功能强大,但在实际使用中,设置和编写测试可能会变得复杂,特别是对于大型项目或有特定需求的测试场景。 **Kotlin库的作用** 为了简化Espresso测试过程,开发者通常会利用各种库来提高效率...

    Espresso:使用Espresso测试AppUI

    1. **安装与配置**:Espresso作为AndroidX测试库的一部分,可以通过在build.gradle文件中添加依赖来引入项目。通常,需要添加以下依赖: ``` androidTestImplementation 'androidx.test.espresso:espresso-core:...

    Android自动化测试工具链的设计与实现.pdf

    在Android自动化测试工具链中,Jenkins作为核心,连接了诸如单元测试工具(如JUnit)、静态代码分析工具(如Checkstyle)、功能测试框架(如Appium或Espresso)以及版本管理工具(如Git)等。 当开发人员提交代码后...

    Fastbot -Monkey 测试工具

    Fastbot作为Monkey测试工具的升级,为Android应用的稳定性测试提供了强大支持。通过智能事件序列、场景定制等功能,它能更有效地帮助开发者发现潜在的缺陷,提高应用质量。在实际开发过程中,结合使用多种测试工具和...

    espresso-helper,[停滞不前]浓缩咖啡的科特林助手的集合。.zip

    然而,尽管Espresso本身功能强大,但在实际使用中,开发者可能会遇到一些复杂场景或特定需求,这时就需要一些辅助工具来提升测试效率和覆盖范围。"Espresso Helper"就是这样一个开源项目,它旨在为Espresso提供额外...

    AndroidTestIntegration:android 测试集成(junit、espresso、cobertura)

    Android测试集成#####Android 带有调试器的 android ... 覆盖范围使用 espresso 运行 android UI 测试 ./gradle connectedAndroidTest使用调试器运行 junit 如果要使用调试器运行测试,则必须使用 gradle 选项作为-Dte

    Android自动化测试工具Robotium的应用与研究.pdf

    为了克服这些问题,开发者可以结合其他工具和策略,如使用 Espresso(Google官方推荐的UI测试框架)来增强特定场景的测试能力,或者采用持续集成(CI)工具如Jenkins,自动化执行测试脚本,及时发现并修复问题。...

    安卓测试工具

    虽然Robotium主要用于单线程的UI自动化测试,但可以通过结合其他工具,如Espresso,实现多线程或并行测试,以提高测试效率。 9. **局限性** 尽管Robotium功能强大,但它并不适合所有类型的测试。对于依赖硬件设备...

    自动化测试

    在给定的“自动化测试”主题中,我们可以深入探讨自动化测试的基本概念、优势、常用工具以及如何应用于实际项目,特别是与 Espresso 框架相关的实践。 自动化测试的优势包括: 1. 提高效率:自动化测试能够快速执行...

    自动化测试Apk,AutoMonkey,老化测试

    总结起来,自动化测试Apk是提升Android应用质量的关键步骤,AutoMonkey作为一种强大的自动化压力测试工具,能够有效地帮助开发者进行疲劳测试和老化测试,发现并修复潜在问题。通过熟练掌握和应用这些测试技术,...

    AndroidTestXRunner,这个库允许您在一次检测执行中多次运行android ui测试。.zip

    Android提供了JUnit和Espresso等工具进行UI测试,但这些工具通常只支持单次运行一个测试用例。而AndroidTestXRunner则扩展了这种能力,使得开发者可以轻松地对同一个测试用例执行多次,从而更好地覆盖各种可能的场景...

    基于Android平台应用程序的关键字驱动自动化测试-理论,工具

    3. **开发测试脚本**:利用选定的自动化测试工具编写测试脚本,重点关注关键字的定义和使用。 4. **运行及维护**:定期执行测试脚本,持续优化测试流程。 #### 更多考虑因素 在实施过程中还需考虑以下因素: - **...

    hypershard-android,用于收集测试的cli工具.zip

    而hypershard-android通过其基于AST的解析机制,可以自动检测到测试相关的代码结构,如JUnit测试类或 Espresso UI测试,从而极大地提升了测试的自动化程度。 CLI(命令行接口)工具通常具有轻量级、快速响应的特点...

    关于手机测试开题报告

    - 自动化测试工具和方法:主流的手机软件自动化测试工具,如Appium、Selendroid、Espresso等,及其相应的测试策略,包括UI测试、功能测试、性能测试等。 2. 课题研究的意义 - 社会交流工具的演变:手机已经超越了...

    Android代码-安卓万能工具箱

    Android项目通常使用Gradle作为构建工具,通过build.gradle文件配置编译选项、依赖库等。 14. **单元测试与集成测试** 为了保证代码质量,开发者可能编写了JUnit或Espresso测试,对工具箱的各个功能进行验证。 ...

    Android性能测试工具Emmagee的优化研究_刘伟1

    总的来说,Emmagee作为Android性能测试工具,其优化研究对于提升应用的性能和用户体验具有显著价值。通过自动化测试和精确控制执行时间的优化,Emmagee能够更有效地帮助开发者诊断和解决性能问题,以适应快速发展的...

    Android自动化测试_Java_下载.zip

    4. **AndroidJUnitRunner**:这是Android Studio默认的测试运行器,它能够与JUnit和Espresso等工具协同工作,帮助我们运行和组织测试用例。 5. **AndroidX Test**:这是Google推荐的全面测试套件,它包含了JUnit、...

    工作中需要用到的软件工具

    10. JUnit & Espresso:单元测试框架JUnit和UI测试框架Espresso是Android开发中的测试工具,它们确保代码的质量和应用的稳定性。 11. Android Design Support Library:此库提供了许多Material Design组件,如...

    wcl-espresso-dagger-demo:基于Espresso和Dagger的自动化测试框架

    描述中提到,该项目是基于Espresso和Dagger构建的自动化测试框架,暗示我们可以通过这个项目学习如何将这两个工具结合使用以提高测试效率。"工程文档"可能包含项目的详细指南、安装步骤、用法示例等,帮助开发者理解...

    Android-Android常用工具库

    JUnit和Espresso是Android测试的基础,JUnit用于单元测试,Espresso则用于UI测试,Mockito和Robolectric可以模拟系统服务和环境,便于进行集成测试。 9. **日志库** Timber是一个简单但功能强大的日志库,它提供...

Global site tag (gtag.js) - Google Analytics