基于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条测试用例。而是使用成本低,只需要在提测前输入几项信息即可拿到想要的数据。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/230861.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日常工作 经验总结

1,在使用vue2开发项目时,快捷有效的组件化component 若有参数传递时,可以通过这样传递 在component中: 2,上拉加载,下拉刷新 若是使用局部进行上拉加载 下拉刷新 且需要用到scroll-view时 那么需要切记scroll-view在内被mescroll-uni包裹。若场景有限 对于无数据显示…

PyTorch数据并行(DP/DDP)浅析

一直以来都是用的单机单卡训练模型,虽然很多情况下已经足够了,但总有一些情况得上分布式训练: 模型大到一张卡放不下;单张卡batch size不敢设太大,训练速度慢;当你有好几张卡,不想浪费&#xf…

YOLOv8改进 | 检测头篇 | ASFF改进YOLOv8检测头(全网首发)

一、本文介绍 本文给大家带来的改进机制是利用ASFF改进YOLOv8的检测头形成新的检测头Detect_ASFF,其主要创新是引入了一种自适应的空间特征融合方式,有效地过滤掉冲突信息,从而增强了尺度不变性。经过我的实验验证,修改后的检测头在所有的检测目标上均有大幅度的涨点效果,…

设计模式 七大原则

1.单一职责原则 单一职责原则(SRP:Single responsibility principle)又称单一功能原则 核心:解耦和增强内聚性(高内聚,低耦合)。 描述: 类被修改的几率很大,因此应该专注…

Vue: 多个el-select不能重复选择相同属性

一、场景 1.需求&#xff1a; 用户可自由选择需要修改的对象并同时修改多个属性&#xff0c;需要校验修改对象不能重复选择&#xff0c;但是可供修改属性是固定的 2.目标效果&#xff1a; 二、实现 1.主要代码&#xff1a; <template><el-selectv-model"se…

开源一套原创文本处理工具:Java+Bat脚本实现自动批量处理对账单工具

原创/朱季谦 这款工具是笔者在2018年初开发完成的&#xff0c;时隔两载&#xff0c;偶然想起这款小工具&#xff0c;于是&#xff0c;决定将其开源&#xff0c;若有人需要做类似Java批处理实现整理文档的工具&#xff0c;可参考该工具逻辑思路来实现。 该工具是运行在windos系统…

vercel部署Gemini pro

一、注册一个vercel账号&#xff08;这个东西类似于第三方的github pages&#xff0c;能部署github中的项目&#xff09; 二、注册结束后&#xff0c;填写github的账号&#xff08;需要事先在该github账号中fork一个gemini的repository&#xff09; 三、babaohuang/GeminiPro…

ssm基于vue框架和elementui组件的手机官网论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本手机官网就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&#x…

用C语言采集游戏平台数据并做行业分析

游戏一直深受90/00后的喜爱&#xff0c;有些人因为对游戏的热爱还专门成立了工作室做游戏赚钱&#xff0c;但是游戏行业赚钱走不好就会被割一波韭菜&#xff0c;那么现在什么游戏挣钱&#xff0c;什么游戏好玩认可度高&#xff1f;带着这样的问题我将利用我毕生所学&#xff0c…

【React系列】Redux(一)管理状态

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 在React的开发过程中&#xff0c;Redux对于我们是非常重要的。 但是对于很多人来说&#xff0c;初次接触redux会感觉r…

2024年HCIE认证有什么用?华为HCIE好考吗?

随着信息技术的迅速发展&#xff0c;网络工程师的需求越来越高&#xff0c;而HCIE作为华为认证体系中的最高级别认证&#xff0c;备受从业者关注。本文将深入研究2024年HCIE认证的价值、考试难度以及报名费用等方面的信息。 2024年HCIE认证有什么用? 新的一年即将到来&#x…

jmeter关联依赖---三种

1.正则表达式提取器 2.xpath取样器 3.json提取器

听GPT 讲Rust源代码--compiler(11)

File: rust/compiler/rustc_mir_transform/src/simplify.rs 在Rust源代码中&#xff0c;rust/compiler/rustc_mir_transform/src/simplify.rs文件是Rust编译器中一系列进行MIR&#xff08;中间表示&#xff09;简化的转换的实现。MIR是Rust编译器中用于进行优化和代码生成的中间…

QT_02 窗口属性、信号槽机制

QT - 窗口属性、信号槽机制 1. 设置窗口属性 窗口设置 1,标题 2,大小 3,固定大小 4,设置图标在 widget.cpp 文件中&#xff1a; //设置窗口大小,此时窗口是可以拉大拉小的 //1参:宽度 //2参:高度 this->resize(800, 600); //设置窗口标题 this->setWindowTitle("…

2023 IoTDB Summit:清华大学软件学院长聘副教授龙明盛《IoTDB 新组件:内生机器学习》...

12 月 3 日&#xff0c;2023 IoTDB 用户大会在北京成功举行&#xff0c;收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题&#xff0c;多位学术泰斗、企业代表、开发者&#xff0c;深度分享了工业物联网时序数据库 IoTDB 的技术创新…

安全狗入选“2023年福建省信息技术应用创新解决方案”名单

近日&#xff0c;福建省数字福建建设领导小组办公室公布了2023年福建省信息技术应用创新解决方案入选项目名单。 作为国内云原生安全领导厂商&#xff0c;安全狗凭借综合且具备突出创新水平的方案入选。 据悉&#xff0c;此次方案征集面向全省信创企业和用户单位&#xff0c;…

HarmonyOS4.0系统性深入开发14AbilityStage组件容器

AbilityStage组件容器 AbilityStage是一个Module级别的组件容器&#xff0c;应用的HAP在首次加载时会创建一个AbilityStage实例&#xff0c;可以对该Module进行初始化等操作。 AbilityStage与Module一一对应&#xff0c;即一个Module拥有一个AbilityStage。 DevEco Studio默…

勒索事件急剧增长,亚信安全发布《勒索家族和勒索事件监控报告》

近期(12.15-12.21)态势快速感知 近期全球共发生了247起攻击和勒索事件&#xff0c;勒索事件数量急剧增长。 近期需要重点关注的除了仍然流行的勒索家族lockbit3以外&#xff0c;还有本周top1勒索组织toufan。toufan是一个新兴勒索组织&#xff0c;本周共发起了108起勒索攻击&a…

电脑视频需要分屏怎么做

在当今数字时代&#xff0c;人们对于视频的需求越来越高。有时候&#xff0c;我们可能想在同一屏幕上同时播放多个视频&#xff0c;进行对比、观看、剪辑或者其他目的。那么&#xff0c;视频分屏应该怎么做呢&#xff1f; 在本篇文章中&#xff0c;我们将会详细的为你介绍视频分…

JS中模块的导入导出

背景 学习js过程中&#xff0c;发现导入导出有的是使用的export 导出&#xff0c;import导入&#xff0c;有的是使用exports或module.exports导出&#xff0c;使用require导入&#xff0c;不清楚使用场景和规则&#xff0c;比较混乱。 经过了解发现&#xff0c;NodeJS 中&…