​        做接口测试,很多时候都会听到,你接口测试的覆盖率是多少?很多人会回答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产生测试报告

打开测试报告,

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

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

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

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

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

控制合理,合理控制时间。

思路清晰,善于解决问题。

思路方案,取决于实践中。

大量锻炼,才能思维敏捷。

闭门造车,僵化思路难成。

点滴积累,成就美好明天。

    关注雷子说测试

    

利用JaCoCo统计接口测试中代码覆盖率的更多相关文章

  1. 利用 awk 统计nginx 中某一个用户的访问次数

    线上总是会遇到攻击,所以就需要分析 access.log 看看那些用户的访问次数不正常,针对这些不正常的用户,要做处理,以 access.log为例说明下怎么统计. 通过 access.log 日志来 ...

  2. Jacoco统计web接口/功能测试的代码覆盖率【转】

    原文:https://www.jianshu.com/p/d2fd02d4164b 一.代码覆盖率 通常我们在做单元测试的时候会接触到代码覆盖率的概念,通过在单元测试的过程中收集代码覆盖率去判断测试用 ...

  3. jacoco统计自动化代码覆盖率

    jacoco统计自动化代码覆盖率 1. 简介 1.1. 什么是Jacoco Jacoco是一个开源的代码覆盖率工具,可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以 ...

  4. 利用Jmeter做接口测试

    本文作者:大道测试团队-孙云 1.在安装jmeter之前先配置好JDK,再配置jmeter环境变量. 2.启动jmeter 启动jmeter: 双击Jmeter解压路径(apache-jmeter-3 ...

  5. sort +awk+uniq 统计文件中出现次数最多的前10个单词

    实例cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sort -k1nr|head -100 统计文件中出现次数最多的前10个单 ...

  6. c程序设计语言_习题1-13_统计输入中单词的长度,并且根据不同长度出现的次数绘制相应的直方图

    Write a program to print a histogram of the lengths of words in its input. It is easy to draw the hi ...

  7. 用SQL实现统计报表中的"小计"与"合计"的方法详解

    本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下   客户提出需求,针对某一列分组加上小计,合计汇总.网上找 ...

  8. JAVA 统计字符串中中文,英文,数字,空格的个数

    面试题:输入一行字符,分别统计出其中英文字母.中文字符.空格.数字和其它字符的个数 可以根据各种字符在Unicode字符编码表中的区间来进行判断,如数字为'0'~'9'之间,英文字母为'a'~'z'或 ...

  9. Python统计列表中的重复项出现的次数的方法

    本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下:对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在 ...

随机推荐

  1. LeetCode 第 287 号问题:寻找重复数,一道非常简单的数组遍历题,加上四个条件后感觉无从下手

    今天分享的题目来源于 LeetCode 第 287 号问题:寻找重复数. 题目描述 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个 ...

  2. Windows系统调用中的现场保存

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中的现场保存 我们之前介绍过三环进零环的步骤 ...

  3. 记录JS如何使用广度遍历找到节点的所有父节点

    我们在实际的工作业务场景中经常遇到这样的场景,求取树数据中某个节点的父亲节点以及所有的父亲节点,这样的场景下不建议使用深度遍历,使用广度遍历可以更快找到. 1.案例解说 比如树的长相是这样的: 树的数 ...

  4. CSP-S 初赛内容整理

    图灵奖 艾伦·麦席森·图灵(Alan Mathison Turing,1912-1954)1966 共计70名科学家获此殊荣,华人仅有1位,他是2000年姚期智. 解释型语言 Python / Jav ...

  5. swoole与php协程实现异步非阻塞IO开发

    “协程可以在遇到阻塞的时候中断主动让渡资源,调度程序选择其他的协程运行.从而实现非阻塞IO” 然而php是不支持原生协程的,遇到阻塞时如不交由异步进程来执行是没有任何意义的,代码还是同步执行的,如下所 ...

  6. 【阿里云IoT+YF3300】6.物联网设备报警配置

    纵然5G时代已经在时代的浪潮中展现出了它的身影,但是就目前的物联网环境中,网络问题仍旧是一个比较突出的硬伤.众所周知,在当前的物联网规划中,与其说是实现万物互联,倒不如说是行业指标数据监控.对于一些特 ...

  7. 彩虹战队waf测试工具(测试数据)

    安全狗 D盾 云锁 360主机卫士 奇安信 绿盟 腾讯云 百度云 阿里云 小米斗鱼 启明星辰/天融信 深信服 华为 知道创宇 长亭 360天眼

  8. Spring 源码阅读之 深入理解 finishBeanFactoryInitialization

    源码入口 上篇博文中我们看到了将Spring环境中的 BeanPostProcessor找出来,添加到BeanFactory中的beanPostProcessors中,统一维护,本片博文继续往下拓展, ...

  9. e.target与事件委托简例(原生和jQuery的区别)

    target定义(英译:目标,目的): target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素.文档或窗口. 语法: event.target event.target.no ...

  10. kafka里的一些管理脚本

    kafka-server-start脚本 ------启动kafka server kafka-server-stop脚本 ------关闭kafka server kafka-topics脚本 -- ...