利用JaCoCo统计接口测试中代码覆盖率

简介: 做接口测试,很多时候都会听到,你接口测试的覆盖率是多少?很多人会回答80%,你怎么统计的,他说覆盖了80%的需求。这个回答没有错误,但是片面,我们不能只考虑需求的覆盖率,还有业务的覆盖率,场景的覆盖率,接口的覆盖率,代码的覆盖率等,本文介绍接口测试的代码覆盖率。那么我们来看看如何是实现的。

   1、环境的搭建


       1.1搭建 ant 环境


           https://ant.apache.org/bindownload.cgi


       我下载的是1.10.7版本,这个是因为 每个版本对应的java的版本 不一样,这个在ant的官网有介绍,下载的zip包 ,然后解压,然后去配置环境变量,我用的是mac配置的,打开:vi .bash_profile


export ANT_HOME=/Users/lileilei/Downloads/apache-ant-1.10.7
export PATH=$PATH:.:${ANT_HOME}/bin


配置完毕后source .bash_profile  立即生效


image.png


 到这里,我们已经设置好了我们的ant的环境。


       1.2 下载JaCoCo。


           下载地址:https://www.jacoco.org/jacoco/


       下载完毕后,解压即可。


      以上搭建了所需的环境。


      2.ant的build文件配置


          通过build.xml拉去覆盖率,具体配置文件如下:

<?xml version="1.0" encoding="utf-8"?>
<project name="plate_id_sample_service" xmlns:jacoco="antlib:org.jacoco.ant">
    <taskdef uri="antlib:org.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 启动的服务,启动方式。


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产生测试报告


打开测试报告,


image.png


   这样,我们就获取到了接口测试的全量代码的覆盖率。我们可以打开获取每个类,每个函数的覆盖率。


       其实在真正的覆盖率,我们还需要考虑 增量代码覆盖率。这里简单的对全量代码的覆盖率做介绍。抛砖引玉,大家可以继续探索。


       这里给大家提供了一种接口测试的覆盖率的统计方式。当然了还有其他方式,大家可以根据自己的需求进行去探索。

       


相关文章
|
2月前
|
存储 测试技术
统计测试结果的代码实现接昨天
统计测试结果的代码实现接昨天
|
4月前
|
Java
100143. 统计已测试设备 --力扣 --JAVA
给你一个长度为 n 、下标从 0 开始的整数数组 batteryPercentages ,表示 n 个设备的电池百分比。 你的任务是按照顺序测试每个设备 i,执行以下测试操作: 如果 batteryPercentages[i] 大于 0: 增加 已测试设备的计数。 将下标在 [i + 1, n - 1] 的所有设备的电池百分比减少 1,确保它们的电池百分比 不会低于 0 ,即 batteryPercentages[j] = max(0, batteryPercentages[j] - 1)。 移动到下一个设备。 否则,移动到下一个设备而不执行任何测试。 返回一个整数,表示按顺序执行测试操作
31 0
|
4月前
|
存储 算法 异构计算
基于FPGA的图像直方图统计实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像直方图统计实现,包括tb测试文件和MATLAB辅助验证
35-pytest-Hooks函数之统计测试结果
35-pytest-Hooks函数之统计测试结果
|
测试技术 BI
测试思想-测试总结 缺陷分析与统计浅析
测试思想-测试总结 缺陷分析与统计浅析
95 0
|
测试技术 BI
测试思想-测试总结 测试报告-关于关缺陷统计
测试思想-测试总结 测试报告-关于关缺陷统计
83 0
|
算法
使用贝叶斯统计来进行更好更直观的A/B测试
使用贝叶斯统计来进行更好更直观的A/B测试
210 0
使用贝叶斯统计来进行更好更直观的A/B测试
|
搜索推荐 测试技术 UED
Netflix 是如何做决策的? | 4. A/B 测试结果之假阴性和统计功效
Netflix 是如何做决策的? | 4. A/B 测试结果之假阴性和统计功效
103 0
Netflix 是如何做决策的? | 4. A/B 测试结果之假阴性和统计功效
|
机器学习/深度学习 数据可视化 测试技术
Netflix 是如何做决策的? | 3. A/B 测试结果之假阳性和统计显著性
Netflix 是如何做决策的? | 3. A/B 测试结果之假阳性和统计显著性
98 0
Netflix 是如何做决策的? | 3. A/B 测试结果之假阳性和统计显著性
|
测试技术 BI
软件测试面试题:统计在一个队列中的数字,有多少个正数,多少个负数,如[1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
软件测试面试题:统计在一个队列中的数字,有多少个正数,多少个负数,如[1, 3, 5, 7, 0, -1, -9, -4, -5, 8]
105 0

热门文章

最新文章