51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2448|回复: 3
打印 上一主题 下一主题

[资料] 利用JaCoCo统计接口测试中代码覆盖率

[复制链接]
  • TA的每日心情
    擦汗
    11 分钟前
  • 签到天数: 950 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-8-12 11:27:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     做接口测试,很多时候都会听到,你接口测试的覆盖率是多少?很多人会回答80%,你怎么统计的,他说覆盖了80%的需求。这个回答没有错误,但是片面,我们不能只考虑需求的覆盖率,还有业务的覆盖率,场景的覆盖率,接口的覆盖率,代码的覆盖率等,本文介绍接口测试的代码覆盖率。那么我们来看看如何是实现的。
      1、环境的搭建
      1.1搭建 ant 环境
      ant.apache.org/bindownload…
      我下载的是1.10.7版本,这个是因为 每个版本对应的java的版本 不一样,这个在ant的官网有介绍,下载的zip包 ,然后解压,然后去配置环境变量,我用的是mac配置的,打开:vi .bash_profile
    1.  export ANT_HOME=/Users/lileilei/Downloads/apache-ant-1.10.7export PATH=$PATH:.:${ANT_HOME}/bin
    复制代码
     配置完毕后source .bash_profile 立即生效

    到这里,我们已经设置好了我们的ant的环境。
      1.2 下载JaCoCo。
      下载地址:www.jacoco.org/jacoco/
      下载完毕后,解压即可。以上搭建了所需的环境。

      2.ant的build文件配置,通过build.xml拉去覆盖率,具体配置文件如下:
     <?xml version="1.0" encoding="utf-8"?>
      <project name="plate_id_sample_service" xmlns:jacoco="antlibrg.jacoco.ant">    <taskdef uri="antlibrg.jacoco.ant" resource="org/jacoco/ant/antlib.xml">        <classpath path="/Users/lileilei/Downloads/jacoco-0.8.5/lib/jacocoant.jar"/>   
      </taskdef>   
      <target name="report">      
      <jacoco:report>            
      <executiondata>               
      <file file="jacoco.exe"/>           
      </executiondata>
                  
                  <structure name="pan">                <!-- 可以按软件功能模块设置多个group,方便在report中查看 -->               
                  <group name="pan">                    
                  <classfiles>                        <!--.class文件路径,可以放在客户端-->                        
                  <fileset dir="/Users/lileilei/Desktop/plan/target/classes"/>                    </classfiles>                    
                  <sourcefiles encoding="utf-8">                        <!--源代码路径,可以放在客户端-->                        
                  <fileset dir="/Users/lileilei/Desktop/plan/src/main/java" />                    </sourcefiles>               
                  </group>         
                  </structure>
                  <!-- report文件保存地址 -->         
                  <html destdir="report"   encoding="utf-8"/>
              </jacoco:report>   
              </target>
              </project>

    这是完整的配置文件,我在配置的地方加好注释,大家可以根据自己的需求进行设置。
      然后去启动要测试的待测服务,这里我是用的jar 启动的服务,启动方式。
    1.  java -javaagent:/Users/lileilei/Downloads/jacoco-0.8.5/lib/jacocoagent.jar=dumponexit=true,destfile=jacoco.exe -jar demo-2.0.6.RELEASE.jar
    复制代码
    这里需要javaagent,这里是jacoco的agent,需要替换成自己的路径就可以。
      启动完成后,就可以开始进行测试了,我使用的swgger2,进行了简单的接口测试,后获取覆盖率。
      在build.xml目录,使用ant获取jacoco.exe然后用?ant?report产生测试报告。
      打开测试报告:

    这样,我们就获取到了接口测试的全量代码的覆盖率。我们可以打开获取每个类,每个函数的覆盖率。
      其实在真正的覆盖率,我们还需要考虑 增量代码覆盖率。这里简单的对全量代码的覆盖率做介绍。抛砖引玉,大家可以继续探索。
      这里给大家提供了一种接口测试的覆盖率的统计方式。当然了还有其他方式,大家可以根据自己的需求进行去探索。
      送大家一句话:代码覆盖率100%不代表没有问题,代码覆盖率不到100%一定有问题。




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-20 09:08 , Processed in 0.074582 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表