作接口測試,不少時候都會聽到,你接口測試的覆蓋率是多少?不少人會回答80%,你怎麼統計的,他說覆蓋了80%的需求。這個回答沒有錯誤,可是片面,咱們不能只考慮需求的覆蓋率,還有業務的覆蓋率,場景的覆蓋率,接口的覆蓋率,代碼的覆蓋率等,本文介紹接口測試的代碼覆蓋率。那麼咱們來看看如何是實現的。javascript
一、環境的搭建css
1.1搭建 ant 環境html
https://ant.apache.org/bindownload.cgi
java
我下載的是1.10.7版本,這個是由於 每一個版本對應的java的版本 不同,這個在ant的官網有介紹,下載的zip包 ,而後解壓,而後去配置環境變量,我用的是mac配置的,打開:vi .bash_profile
apache
export ANT_HOME=/Users/lileilei/Downloads/apache-ant-1.10.7
export PATH=$PATH:.:${ANT_HOME}/bin
配置完畢後source .bash_profile 當即生效bash
到這裏,咱們已經設置好了咱們的ant的環境。
函數
1.2 下載JaCoCo。測試
下載地址:https://www.jacoco.org/jacoco/ui
下載完畢後,解壓便可。spa
以上搭建了所需的環境。
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產生測試報告
打開測試報告,
這樣,咱們就獲取到了接口測試的全量代碼的覆蓋率。咱們能夠打開獲取每一個類,每一個函數的覆蓋率。
其實在真正的覆蓋率,咱們還須要考慮 增量代碼覆蓋率。這裏簡單的對全量代碼的覆蓋率作介紹。拋磚引玉,你們能夠繼續探索。
這裏給你們提供了一種接口測試的覆蓋率的統計方式。固然了還有其餘方式,你們能夠根據本身的需求進行去探索。
須要明確,提供合理方案。
方案合理,解決合理需求。
控制合理,合理控制時間。
思路清晰,善於解決問題。
思路方案,取決於實踐中。
大量鍛鍊,才能思惟敏捷。
閉門造車,僵化思路難成。
點滴積累,成就美好明天。
關注雷子說測試