利用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  立即生效

    

    

        到這里,我們已經設置好了我們的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產生測試報告

            打開測試報告,

        這樣,我們就獲取到了接口測試的全量代碼的覆蓋率。我們可以打開獲取每個類,每個函數的覆蓋率。

        其實在真正的覆蓋率,我們還需要考慮 增量代碼覆蓋率。這里簡單的對全量代碼的覆蓋率做介紹。拋磚引玉,大家可以繼續探索。

        這里給大家提供了一種接口測試的覆蓋率的統計方式。當然了還有其他方式,大家可以根據自己的需求進行去探索。

        

            需要明確,提供合理方案。

            方案合理,解決合理需求。

            控制合理,合理控制時間。

            思路清晰,善於解決問題。

            思路方案,取決於實踐中。

            大量鍛煉,才能思維敏捷。

            閉門造車,僵化思路難成。

            點滴積累,成就美好明天。

 

    關注雷子說測試

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM