作接口测试,不少时候都会听到,你接口测试的覆盖率是多少?不少人会回答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产生测试报告
打开测试报告,
这样,咱们就获取到了接口测试的全量代码的覆盖率。咱们能够打开获取每一个类,每一个函数的覆盖率。
其实在真正的覆盖率,咱们还须要考虑 增量代码覆盖率。这里简单的对全量代码的覆盖率作介绍。抛砖引玉,你们能够继续探索。
这里给你们提供了一种接口测试的覆盖率的统计方式。固然了还有其余方式,你们能够根据本身的需求进行去探索。
须要明确,提供合理方案。
方案合理,解决合理需求。
控制合理,合理控制时间。
思路清晰,善于解决问题。
思路方案,取决于实践中。
大量锻炼,才能思惟敏捷。
闭门造车,僵化思路难成。
点滴积累,成就美好明天。
关注雷子说测试