当前位置: 首页 > news >正文

基于metersphere和supper-jacoco 测试覆盖率落地实践

一、背景及目标

背景

1、技术研发流程为测试 提供冒烟用例-开发根据用例自测-提测-开始测试,这一套流程,但是中间开发是否真实执行冒烟,测试并不知晓,而且测试提供冒烟用例是否符合标准也没法进行量化
2、公司产品属于saas产品,但是针对一些客户需要做定制化处理,这种场景,开发往往给出的是测试不用介入,修改代码少,但是真实修改了多少,会不会引起其他问题,测试是完全不知道的
3、自动化体系逐渐成熟,但是在代码层面,自动化完成效果无法进行量化,可能a测试人员编写了100条自动化用例,但是每个多个用例调用同一接口,场景单一,不好具体量化自动化完成

目标

基于上述背景,决定引用覆盖率工具,让测试更加了解代码,对工作流程有着更好的量化
每次需求提测,能获取到与基线分支对比,新增了多少代码,在开发冒烟后,获取到开发是否真实执行了冒烟,并统计冒烟覆盖率,同样在测试时,获取到测试覆盖率,并根据覆盖率数据,补充遗漏测试点
通过全量测试覆盖率,统计自动化真实情况,覆盖多少代码

二、怎么做

当前测试团队,使用的是基于开源测试平台metersphere的二开,做了很多定制化的处理,团队各种测试工具,肯定都是集成在一起使用更加方便快捷。

1、增量测试覆盖率版本问题如何解决

全量测试覆盖率比较好解决,但是版本测试增量覆盖率就比较麻烦,首先一个版本的标准是什么,怎么去创建这个版本,怎么维护,我司测试用例及版本维护用的是禅道,每次测试版本,需要在禅道上创建一个测试单关联到对应用例及bug,如果在测试平台再去创建一个版本,创建虽然不麻烦,但是还是要多一步操作,而且不能保证每个人去执行能不能保持统一,做测试工具的应该都会碰到一个问题就是,做出来容易推广难,做出来的东西肯定是最大限度减低人工操作成本。
我这边给出的方案是,metersphere去拉取禅道测试单,这样就可以覆盖率版本问题,而且既然已经关联测试单了,对应的用例,bug等数据也可以进行统计,一举二得
最后的实现的就是metersphere定时同步测试单,拉取测试单的信息,并统计bug等数据,还可以顺道做下汇总图
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、怎么打通gitlab,测试平台,supper-jaoco,k8s?

相信很多人都使用过supper-jacoco,包的单个部署应用supper-jacoco是很简单的,把supper-jacoco启动起来,项目运行时带上javaagent命令就ok了,使用方法还是很简单的,但是要想把这一套使用的真实项目中,每个版本去统计,就相对没那么容易了,每一个版本都人工去操作,这样这个工具想推广真是难上加难,而且都靠人工来操作,出现错误的几率就比较高。时间久了就没人去用了。而且现在一般公司测试环境维护都是使用的k8s,jacoco运行时,需要把对应的jacoco-cli包跟具体项目放在一起,然后打包为一个镜像,放在k8s上去运行。
我这边的处理是
1、将jacoco-cli包放在oss上,gitlab流水线打包时,将jacoco-cli拉下来,在开发打包的dockerfile中,将jacoco-cli包跟项目的包打在同一个镜像中

在这里插入图片描述

2、第一步解决后,就比较简单了,我们使用的是rancher来管理k8s,在镜像启动时,配置对应的javaagent命令即可,再把supper-jacoco服务在k8s起来,这样,每次打包部署后,就可以直接去拉取覆盖率文件了

3、第2步的问题解决后,难点就是开始统计覆盖率和覆盖率结果的收集,supper-jacoco每次需要传入git地址,微服务目录,基准分支,当前分支,uuid等信息,我这边在metersphere上创建一张表,用来维护git项目信息,项目部署容器ip,分支,地址等(这一步可以做成一个功能在页面上,但是变动比较小就没进行开发),这样在测试平台选择版本时,就可以选择对应的项目,填写版本,就可以进行覆盖率收集了
在这里插入图片描述
在这里插入图片描述

三、流程汇总

在这里插入图片描述
在这里插入图片描述

四、落地效果

测试落地4个月,开始覆盖了收集有20多个版本,平均冒烟行覆盖超45%,平均测试覆盖超75%,详细统计每个服务测试自动化覆盖了多少,目前已形成测试门禁,冒烟增量行覆盖必须超45%,测试增量行覆盖超75%,每个版本平均可以根据测试覆盖率补充2-5条测试用例。而是使用成本低,只需要在提测前输入几项信息即可拿到想要的数据。
在这里插入图片描述

相关文章:

基于metersphere和supper-jacoco 测试覆盖率落地实践

一、背景及目标 背景 1、技术研发流程为测试 提供冒烟用例-开发根据用例自测-提测-开始测试,这一套流程,但是中间开发是否真实执行冒烟,测试并不知晓,而且测试提供冒烟用例是否符合标准也没法进行量化 2、公司产品属于saas产品&…...

LeetCode每周五题_2024/01/01~2024/01/05

文章目录 1599. 经营摩天轮的最大利润 [2024/01/01]题目题解 466. 统计重复个数 [2024/01/02]题目题解 2487. 从链表中移除节点 [2024/01/03]题目题解 1599. 经营摩天轮的最大利润 [2024/01/01] 题目 1599. 经营摩天轮的最大利润 你正在经营一座摩天轮,该摩天轮共…...

【华为OD机试真题2023CD卷 JAVAJS】抢7游戏

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 抢7游戏 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: A、B两个人玩抢7游戏,游戏规则为A先报一个起始数字X(10<起始数字<10000),B报下一个数字Y(X-Y<3),A再报一个数字Z(Y-Z<3),以此类推,直…...

14.7-时序反馈移位寄存器建模

时序反馈移位寄存器建模 1&#xff0c;阻塞赋值实现的LFSR&#xff0c;实际上并不具有LFSR功能1.1.1&#xff0c;RTL设计&#xff0c;阻塞赋值1.1.2&#xff0c;tb测试代码1.1.3&#xff0c;波形仿真输出&#xff0c;SIM输出&#xff0c;没实现LFSR1.2.1&#xff0c;RTL设计&am…...

【设计模式】二十一.行为型模式之状态模式

状态模式 一. 说明 状态模式通常描述一个类不同行为的多个状态变更&#xff0c;对象的行为依赖它的状态&#xff0c;它是一种行为型模式。 状态模式可以用来消除代码中大量的if-else结构&#xff0c;它明确对象是有状态的、对象的不同状态对应的行为不一样、行为之间是可以切…...

微服务实战系列之Dubbo(下)

前言 眼看着2023即将走远&#xff0c;心里想着似乎还有啥&#xff0c;需要再跟各位盆友叨叨。这不说曹操&#xff0c;曹操就来了。趁着上一篇Dubbo博文的余温尚在&#xff0c;博主兴匆匆地“赶制”了Dubbo的下集&#xff0c;以飨读者。 上一篇博主依然从Dubbo的内核出发&#…...

《剑指offer》数学第二题:求1+2+3+...+n

题目描述&#xff1a; 求123...n&#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。思路&#xff1a; 我们可以用递归和短路运算符来进行运算&#xff0c;具体代码如下。 代码实现&#xff1a; pac…...

阿里云服务器3M固定带宽速度快吗?

阿里云服务器3M固定带宽是什么意思&#xff1f;速度快吗&#xff1f;3M固定带宽是指云服务器的公网带宽&#xff0c;用于在外网提供服务的&#xff0c;3M带宽的下载速度是384KB/秒&#xff0c;上传速度是1280KB/秒&#xff0c;对于个人博客或流量不多的企业官网速度还是挺快的&…...

美易官方:新年伊始美企狂发450多亿美元债券

新年伊始&#xff0c;美国企业疯狂发行了价值超过450亿美元的债券&#xff0c;创下了历史新高。这一数字比去年同期增长了约50%&#xff0c;凸显出美国企业在全球经济增长放缓的背景下&#xff0c;依然保持着强劲的融资需求和信心。美国企业借款人周三将发行近160亿美元高评级债…...

[云原生] Go web工作流程

web工作流程 Web服务器的工作原理可以简单地归纳为 客户机通过TCP/IP协议建立到服务器的TCP连接客户端向服务器发送HTTP协议请求包&#xff0c;请求服务器里的资源文档服务器向客户机发送HTTP协议应答包&#xff0c;如果请求的资源包含有动态语言的内容&#xff0c;那么服务器…...

【PostgreSQL】约束-主键

【PostgreSQL】约束链接 检查 唯一 主键 外键 排他 主键 主键&#xff08;Primary Key&#xff09;是数据库表中用于唯一标识每一行记录的字段。主键具有以下特点&#xff1a; 唯一性&#xff1a;每个主键值在表中是唯一的&#xff0c;不允许出现重复值。非空性&#xff1a…...

IDEA 控制台中文乱码问题解决方法(UTF-8 编码)

设置 IDEA 编码格式 1&#xff1a;打开 IntelliJ IDEA>File>Setting>Editor>File Encodings&#xff0c;将 Global Encoding、Project Encoding、Default encodeing for properties files 这三项都设置成 UTF-8 2&#xff1a;将 vm option 参数改为&#xff1a; -…...

ssm基于BS的仓库在线管理系统的设计与实现论文

摘 要 如今的时代&#xff0c;是有史以来最好的时代&#xff0c;随着计算机的发展到现在的移动终端的发展&#xff0c;国内目前信息技术已经在世界上遥遥领先&#xff0c;让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#x…...

鸿蒙HarmonyOs:为什么不支持热更新?

学习了一段时间的鸿蒙开发&#xff0c;发现鸿蒙开发还是比较简单的&#xff0c;今天突然心血来潮&#xff0c;研究了一下鸿蒙热更新&#xff0c;最终得出的结论是鸿蒙暂时不支持热更新。 鸿蒙app开发主要是利用的ArkTs语言&#xff0c;ArkTs又是基于TypeScript语言的&#xff0…...

修改 Ubuntu 的配置

目录 一、修改地址 1. 修改本机IP 二、修改网关 1. 查看网关地址 2. 设置默认网关 三、重启网络 1. 重启网络 2. 刷新网络 四、修改主机名 1. 查看主机名 2. 修改主机名 一、修改地址 1. 修改本机IP sudo ifconfig en…...

虹科方案|从困境到突破:TigoLeap方案引领数据采集与优化

导读&#xff1a;在数字化工厂和智能制造的时代&#xff0c;数据已经成为优化机器和流程的关键。然而&#xff0c;如何高效地收集和处理这些数据&#xff0c;特别是在开发、部署和生产阶段&#xff0c;仍是企业面临的一大挑战。虹科TigoLeap平台&#xff0c;作为一款引领行业变…...

【教学类-43-02】20231226 九宫格数独2.0(n=9)(ChatGPT AI对话大师生成 回溯算法)

作品展示&#xff1a; 背景需求&#xff1a; 大4班20号说&#xff1a;我不会做这种&#xff08;九宫格&#xff09;&#xff0c;我做的是小格子的&#xff0c; 他把手工纸翻过来&#xff0c;在反面自己画了矩阵格子。向我展示&#xff1a; “我会做这种&#xff01;” 原来他…...

麒麟Kylin服务器版-破解root密码

一、单用户模式修改root密码 1.重启服务器系统后&#xff0c;将光标移动到第二项&#xff0c;按【e】键进入用户登录页面。 2.在【username】下方所在行输入root名称&#xff0c;【password】下方所在行输入密码Kylin123123后&#xff0c;进入编辑模式。代码如下&#xff1a; …...

cnPuTTY 0.80.0.1—PuTTY Release 0.80中文版本简单说明~~

2023-12-18 官方发布了PuTTY 0.80本次发布主要是针对Terrapin攻击(CVE-2023-48795)的修改发布。 更多详细的内容请查看PuTTY Change Log。 有关Terrapin攻击可用简单参考&#xff1a;警告&#xff01;&#xff01;&#xff01;Terrapin攻击(CVE-2023-48795)~~~ 为了缓解此漏洞…...

向爬虫而生---Redis 拓宽篇1 < pipeline传输效率>

前言: 都知道,Redis是一款高效的内存数据库;每条命令都能很快响应,但是如果我们把服务器布在网络上,每次一个命令来回传送也是需要花费时间的; pipeline传输技术则是进一步提高Redis的性能和传输效率的一种方法。 正文: pipeline与普通命令发送方式的区别 Pipeline是一种机制&…...

Unity Hub 无法激活许可证

烦死了~ &#x1f635;‍&#x1f4ab; 卸载UnityHub, 安装旧版本&#x1f448;激活许可证&#xff0c; 如果出现旧版本无法识别Editor的情况需要卸载了再装最新版本的UnityHub...

数据分析求职-如何准备

今天咱们来聊一聊数据分析岗位求职到底需要准备什么&#xff1f;什么时间准备&#xff1f;该如何准备&#xff1f; 1. 求职时间轴 上图很清楚地把求职时间轴展示出来了&#xff0c;重复的话也不多说了&#xff0c;有两点想和同学们重点提下&#xff1a; 1&#xff09;一定一定…...

新手能掌握 PyTorch 的填充技术:深入理解反射、复制、零值和常数填充

目录 torch.nn子模块详解 nn.ReflectionPad1d 参数说明&#xff1a; 形状&#xff08;Shape&#xff09;&#xff1a; 使用示例&#xff1a; 注意事项&#xff1a; nn.ReflectionPad2d 参数说明&#xff1a; 形状&#xff08;Shape&#xff09;&#xff1a; 使用示例…...

地震烈度速报与预警工程成功案例的经验分享 | TDengine 技术培训班第一期成功落地

近日&#xff0c;涛思数据在成都开设了“国家地震烈度速报与预警工程数据库 TDengine、消息中间件 TMQ 技术培训班”&#xff0c;这次培训活动共分为三期&#xff0c;而本次活动是第一期。其目标是帮助参与者深入了解 TDengine 和 TMQ 的技术特点和应用场景&#xff0c;并学习如…...

集群部署篇--Redis 集群动态伸缩

文章目录 前言一、redis 节点的添加1.1 redis 的实例部署&#xff1a;1.2 redis 节点添加&#xff1a;1.3 槽位分配&#xff1a;1.4 添加从节点&#xff1a; 二、redis 节点的减少2.1 移除主节点2.1.1 迁移槽位2.1.1 删除节点&#xff1a; 三、redis 删除节点的重新加入3.1 加入…...

excel中解决多行文本自动调整行高后打印预览还是显示不全情况

注意&#xff1a;此方法对于多行合并后单元格行高调整不适用&#xff0c;需要手动调整&#xff0c;如大家有简便方法&#xff0c;欢迎评论。 一、调整表格为自动调整行高 1&#xff09;点击此处全选表格 2&#xff09;在第一行序号单元格的下端&#xff0c;鼠标成黑十字时&am…...

策略模式+责任链模式配合Nacos实现参数校验链

1、业务场景 在SpringBoot项目中&#xff0c;针对接收的参数信息&#xff0c;根据需求要进行以下校验&#xff1a; 校验客户的apikey是否合法&#xff1b;校验请求的ip地址是否是白名单&#xff1b;校验短信的签名&#xff1b;校验短信的模板&#xff1b;校验手机号的格式合法…...

‘react-native‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

原因&#xff1a;没有下载react-native 解决下载react-native npm i -g react-native-cli...

c语言:求最小公倍数|练习题

一、题目 输入两个数&#xff0c;求两数的最小公倍数。 如图&#xff1a; 二、思路分析 1、先知道两个数里的最小值(比如&#xff1a;9和6&#xff0c;取6) 2、用2到6&#xff0c;5个数&#xff0c;同时除以9和6,得最小公约数&#xff1a;3 3、用9除33&#xff0c;6除32。得最小…...

嵌入式系统(二)单片机基础 | 单片机特点 内部结构 最小系统 电源 晶振 复位

上一篇文章我们介绍了嵌入式系统 嵌入式系统&#xff08;Embedded System&#xff09;是一种特定用途的计算机系统&#xff0c;它通常嵌入在更大的产品或系统中&#xff0c;用于控制、监测或执行特定的任务。这些系统通常由硬件和软件组成&#xff0c;旨在满足特定的需求&…...

诸城做网站收费/友情链接的网站有哪些

经过这几天的工作&#xff0c;让我进一步的了解到CSS3的强大&#xff0c;原本许多需要js才能实现的动画效果&#xff0c;现在通过CSS3就能轻易实现了&#xff0c;但是CSS3也有自身的不足&#xff0c;例如说在动画出发触发上就没有js灵活&#xff0c;因此我就开始考虑将CSS3与Js…...

南京网站排名/友情链接交换软件

setTimeout 在 js 加载前的问题探究 思思放出一道题目&#xff0c;深究一下发觉很有意思<script>setTimeout(() > {alert(2);}, 0)</script> <script src"https://test.tms-uat.xuebangsoft.net/plugins/jquery-1.10.2.min.js"></script>…...

商城网站设计价格/2023b站推广大全

概览在 iOS中随处都可以看到绚丽的动画效果&#xff0c;实现这些动画的过程并不复杂&#xff0c;今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互 式绘图&#xff0c;如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画&#xff0c;如何通…...

网站开发怎么谈/seo超级外链工具免费

爬取网站时经常会遇到需要登录的问题&#xff0c;这是就需要用到模拟登录的相关方法。python提供了强大的url库&#xff0c;想做到这个并不难。这里以登录学校教务系统为例&#xff0c;做一个简单的例子。 首先得明白cookie的作用&#xff0c;cookie是某些网站为了辨别用户身份…...

聊城做网站建设的公司/软文例文 经典软文范例

1. 点击密码右边的刷新图片&#xff0c;然后点设置个人密码 2. 设置密码...

wordpress编辑颜色/国内新闻摘抄2022年

给一个正整数&#xff0c;如果是偶数&#xff0c;则减半&#xff1b;如果是奇数&#xff0c;则变为它的三倍加一。直到变为一停止。对于所有正整数经过足够多次变换最终总能达到1。#!/usr/bin/env python# -*- coding: utf-8 -*-def collatz(number):while(number ! 1):if numb…...