自动创建单元测试说明文档(Espresso)

说明:本文为开源项目Espresso的操作说明。

项目博客地址:http://blog.csdn.net/xiaoluoli88/article/details/79635119
第一步:
引入auto_espresso类库,并设置为androidTestImplementation project(’:auto_espresso’),AS 3.0以下的可以设置为androidTestCompile
自动创建单元测试说明文档(Espresso)_第1张图片
build.grale配置
自动创建单元测试说明文档(Espresso)_第2张图片

  1. 注意类库配置是:androidTestImplementation project(’:auto_espresso’)
    我们的工具库只是为了测试使用,不需要打包到apk中,所以使用androidTest方式引入;
  2. 配置延迟加载类库: implementation
    ‘com.android.support.test.espresso.idling:idling-concurrent:3.0.1’
    耗时操作需要用到该类;

第二步:
设置完成后,同步Gradle文件。
自动创建单元测试说明文档(Espresso)_第3张图片

第三步:
在需要测试app module的Activity中,定义好IdlingResource,用来处理耗时操作;
自动创建单元测试说明文档(Espresso)_第4张图片
第四步:
打开auto_espresso中的assets中的用例,当然可以放置任意位置,这里只是为了相对路径方便,可多个文件,任意命名;
自动创建单元测试说明文档(Espresso)_第5张图片
根据Demo填写测试用例
自动创建单元测试说明文档(Espresso)_第6张图片
说明几点:

  1. 用例编号为Test方法名,必须为英文字母开头;
  2. Intent值,模拟上一个页面传入的值(SharedPreferences 同)
    如可以存放基数数据类型String/Int/Long/Float
    第一个参数是类型,第二个参数是key,第三个参数是value
  3. 权限可使用引用或字符串
    如:Manifest.xx.xxx;Manifest.sx.xx 亦可使用字符串xxx.xxx.xxx;kkk.kk.kk
  4. 是否创建为“N”时,则不创建该单元测试,直接跳过;
  5. 是否执行为“N”时,则不创建该用例,直接跳过;
  6. 参数为“#”表示无参数;
  7. 每个sheet表格表示一个单元测试,可创建多个sheet表格,如主页、登录、注册等等,系统运行时会自动创建多个单元测试类;
  8. 系统会自动跳过名为[demo]的sheet表格;

第四步:
根据模版创建驱动单元测试类,修改测试的项目模块名称、包名、驱动文件路径;
说明:

  1. 模块名称ModuleName:就是你需要测试的项目;
  2. 包名packageName:就是你需要测试的项目的包名;
  3. 驱动路径:excel驱动文件的路径;
  4. 支持多语言输出: java/kotlin
  5. [可选]可自动创建和执行集成测试(前提是app已经安装在设备中了)
    //创建集成测试并执行
    read.executeAllTest(packageName,unitPath);
    自动创建单元测试说明文档(Espresso)_第7张图片

第五步:
执行驱动创建的方法类,选中“CreateUnitTest”点击右键,选中Run
自动创建单元测试说明文档(Espresso)_第8张图片
执行完成后,底部控制终端会显示“执行完成”
自动创建单元测试说明文档(Espresso)_第9张图片
同时,待测试的Module app的androidTest目录下已经创建好了单元测试类
自动创建单元测试说明文档(Espresso)_第10张图片
打开xxActvityTest可以看到,我们在excel中的测试用例已经创建好了。
自动创建单元测试说明文档(Espresso)_第11张图片
延迟加载的getIdlingResource()将测试程序和应用程序两者联系起来;自动创建单元测试说明文档(Espresso)_第12张图片

需单独执行单元测试可选中该文件,点击右键选中Run,选中Instrumented执行即可。
自动创建单元测试说明文档(Espresso)_第13张图片

第六步:输出测试报告。

方法一:(所有测试报告)使用命令,AS中在Terminal窗口中,执行命令
./gradlew connectedAndroidTest
或者 在项目gradle 中选择connectedAndroidTest运行
自动创建单元测试说明文档(Espresso)_第14张图片
执行后,项目所有测试报告将会自动生成,测试报告路径为:
项目名/Module名/build/reports/androidTests/connected/index.html

自动创建单元测试说明文档(Espresso)_第15张图片
浏览器中查看测试报告(整体测试报告)
自动创建单元测试说明文档(Espresso)_第16张图片
单个测试报告
自动创建单元测试说明文档(Espresso)_第17张图片
方法二:(单个测试报告)运行完某个测试用例后,选择绿色向上箭头,导出测试报告
自动创建单元测试说明文档(Espresso)_第18张图片

查看单个测试报告
自动创建单元测试说明文档(Espresso)_第19张图片

测试覆盖率
1.配置
gradle自带的有jacoco插件的,只需要引入就好了(最新的AS不需要配置了),打开测试项目的build.gradle,在第一行添加插件:

apply plugin: 'jacoco'

测试项目debug 里面配置testCoverageEnabled true

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

2.获取测试覆盖率报告
使用命令,AS中在Terminal窗口中,执行命令
./gradlew createDebugCoverageReport
或者 在项目gradle 中选择createDebugCoverageReport运行(若没显示此项,使用gradle左上角的刷新图标,即可显示)
自动创建单元测试说明文档(Espresso)_第20张图片
执行后,自动开始执行androidTest下的所有测试类,项目所有测试覆盖率报告将会自动生成,测试覆盖率报告路径为:
项目名/Module名/build/reports/coverage/index.html
注意:若测试类中一旦出现异常情况,将会导致覆盖率测试报告生成失败。
自动创建单元测试说明文档(Espresso)_第21张图片
自动创建单元测试说明文档(Espresso)_第22张图片
绿色:表示行覆盖充分。
红色:表示未覆盖的行。
黄色棱形:表示分支覆盖不全。
绿色棱形:表示分支覆盖完全。

测试覆盖率报告中可查看哪些已经测试过,哪些没有测试过,测试分支那些测过,哪些没有测试过。

持续更新中~

你可能感兴趣的:(Android自动化测试)