案例研究|众乐邦将MeterSphere持续测试平台融入DevOps流水线

众乐邦网络科技有限公司(以下简称为“众乐邦”)是一家企业服务公司。其旗下的众乐邦灵活用工数字化薪税管理平台(以下简称为灵活用工管理平台),以财税服务视角切入灵活用工场景,连接企业、灵活就业者和监管三方,帮助企业更安心、轻松地管理临时工及兼职人员,并在用工衔接、成果交付、费用结算、票据管理等方面助力企业实现降本增效、规范经营、模式升级。
在这里插入图片描述

一、众乐邦测试平台选型的背景

灵活用工管理平台包含多个功能模块。其中,用户模块、任务模块、支付模块、发票模块等属于关键模块。这些模块的业务功能复杂,涉及用户注册、认证、岗位匹配、合同签署等多个步骤的组合操作,步骤之间存在数据交互和传输,容易出现数据传输错误、传输超时、不兼容和性能瓶颈等问题。这种情况下,使用传统的手工测试容易忽略一些冗长或复杂的接口场景,从而产生测试覆盖面不足的问题,容易导致系统崩溃或异常结果。
在这里插入图片描述

▲ 图1 众乐邦灵活用工管理平台功能示意图

随着业务的快速发展,众乐邦灵活用工管理平台需要根据用户的需求变化进行迭代和升级,实现以需求为颗粒度的快速交付。这对众乐邦的测试团队来说是一个比较大的挑战,测试团队遇到的具体困难包括:

1.回归测试要求高

众乐邦灵活用工管理平台涉及多个模块且业务流程复杂,产品的每次迭代都可能造成多个流程的修改,为保证新的迭代不会影响现有功能的正常运行,众乐邦的测试团队需要执行大量的回归测试,以验证系统的稳定性和一致性。众乐邦灵活用工管理平台的回归测试用例数量较多,而且覆盖了各个模块和业务流程的不同场景。但是由于许多测试工具没有自动化的定时执行机制,测试团队只能采用手工方式执行测试用例,手工验证每个测试用例是否符合新的需求和修改后的业务流程。

手工测试不但增加了测试团队的工作量,放大了错误风险,还会耗费大量时间和精力。传统的手工测试在面对不断变化的业务需求时不够灵活,导致了测试工作的滞后和测试覆盖面的不足。

2.自动化脚本管理困难

众乐邦的测试团队在自动化脚本管理方面主要有三大痛点:

■ 脚本编写效率低

测试团队在进行接口自动化测试的过程中使用了多种不同的自动化测试工具,虽然它们提供了脚本编辑的功能,但是在面对大规模或复杂脚本的编写情景时,这些工具存在效率较低、不易维护和维护不规范的问题;

■ 脚本编写限制多

测试工具的差异化导致测试人员在编写脚本时缺乏灵活性和易读性,使用脚本时复用性和可读性不足;

■ 脚本维护困难

随着众乐邦产品的持续迭代,测试脚本需要不断更新以适应新的业务逻辑,脚本维护的困难程度也随之上升。

3.缺少功能全面的测试管理平台

庞杂的测试任务让众乐邦的测试流程变得极其复杂,内部测试协作难于开展。一方面,测试人员难以追踪测试用例的执行结果,也难以明确问题的来源和根本原因;另一方面,在测试管理方面,测试数据和测试用例分散在不同的测试工具中,测试团队很难对这些碎片化的测试数据和用例进行管理。

众乐邦的测试团队希望有一款功能全面的一站式测试平台来优化协作流程、提高测试工作的可追溯性,帮助测试团队更加高效地管理测试数据和用例。

二、选择MeterSphere测试平台的原因

根据众乐邦质量能效团队对项目交付的时间、成本和交付率三个关键维度的数据统计和分析,造成目前测试困境的主要原因是众乐邦缺少一套DevOps流程。

一方面,在项目初期的研发阶段,众乐邦的研发人员会对接口进行自测,而测试人员则专注于业务测试,两个团队缺少协作沟通;另一方面,在项目后期,研发人员往往需要重构代码,对部分接口进行调整,这会导致业务侧接口自动化测试场景的改变。但这样的变化并没有及时同步给测试团队成员,增加了测试人员的工作阻力。

众乐邦研发团队和测试团队的协作缺失增大了项目交付期间的沟通成本,从而影响了项目的交付周期。为了打破这一瓶颈,众乐邦的质量能效团队决定以DevOps标准推动实际的软件交付工作。DevOps持续测试流程的引入,将测试过程贯穿到整个软件交付流程中。DevOps持续测试流程的实施,让测试团队可以更早地发现和解决潜在问题,帮助团队灵活适应不断变化的需求,从而提高软件质量,缩短项目交付周期。

在DevOps流水线中,众乐邦团队使用TAPD平台(Tencent Agile Product Development,腾讯敏捷协作平台)进行全链路的项目管理追踪。而在代码构建、部署和运维等各个环节,也有其他相应的工具可以使用。但不同于其他环节,在测试环节中,主流的测试工具无法完成所有的测试类型,测试团队需要同时使用不同的测试工具开展工作。碎片化的测试工具成为阻碍测试效率提升的关键因素之一,导致众乐邦长期存在测试速度慢和测试反馈迟缓等问题。

因此,众乐邦的测试团队考虑引入一款一站式的测试平台,从而实现对自动化测试的全面支持,促进研发、测试和部署等环节之间的协同与流程打通,提高测试效率,确保测试覆盖的全面性,做好质量控制,加速交付流程,从而实现全面的DevOps集成。

在测试平台的产品选型过程中,众乐邦的测试团队对市场上主流的测试工具和测试平台进行了调研和试用,最终选择了MeterSphere一站式开源持续测试平台。选择MeterSphere平台的原因主要有以下三个方面:

■ DevOps集成能力:MeterSphere测试平台能够很好地融入到CI/CD(持续集成/持续交付)的流程中。MeterSphere可以集成TAPD项目管理平台,实现需求的关联和缺陷的双向同步,促进研发团队和测试团队的无缝协作,从而构建一个紧密的闭环,在便于测试团队上手的同时也能降低和研发团队的沟通成本。除此以外,MeterSphere支持对测试过程中的数据、测试脚本和测试报告按照项目模块进行整合,方便了测试团队开展管理工作;

■ 一站式能力:MeterSphere拥有一站式的测试能力,涵盖测试管理、接口测试、UI测试和性能测试等多个关键测试能力。其中,众乐邦的测试团队最为看重的是接口测试和UI测试功能。

接口测试方面,MeterSphere有着类似于Postman的接口用例设计方式与使用模式,但相比Postman等工具,MeterSphere更加容易上手。MeterSphere还具备了JMeter的灵活性,提供灵活自由的接口场景编排设计、丰富的接口拓展功能和完备的执行方式及报告。

UI测试方面,MeterSphere提供了着基于Selenium浏览器的自动化方案,内嵌高度可复用的测试脚本,让众乐邦的测试团队无需手动编写复杂的代码,以低代码的方式开展自动化UI测试;

■ 易用性:MeterSphere以可视化和低代码的设计理念为基础,用户界面设计简单易用,主要功能和操作区域布局清晰,降低了用户的学习成本。测试人员在编写自动化测试脚本时只需要在网页上进行简单的拖拽和设置操作,极大地降低了自动化测试的执行和使用门槛,让测试人员无需大量的培训,就可以快速上手使用。

三、基于MeterSphere平台的持续自动化测试

基于众乐邦的测试工作现状,为了将MeterSphere平台融入到DevOps流水线中,并且实现与TAPD平台的深度结合,众乐邦测试团队的持续自动化测试体系总体设计思路如下:

■ 在项目交付之前,研发人员和产品经理根据项目情况创建需求,产品经理与测试团队提前编写功能测试用例,并将功能用例通过脑图一键导入至MeterSphere平台。然后借助MeterSphere的服务集成能力,与TAPD平台完成对接,从而实现需求与功能用例的关联。接下来,多方团队成员共同参与用例评审,在评审过程中检查测试用例是否涵盖了所有的功能点,以及这些功能点是否能够按照预期的方式进行测试,尽量减少在测试过程中出现问题的可能性;

■ 在开发过程中,开发团队根据需求文档进行接口开发。一方面使用Swagger工具进行接口的维护和文档化,另一方面利用MeterSphere平台的自动同步功能,将接口同步至MeterSphere平台。测试团队会根据同步到MeterSphere平台的接口信息,编写相应的自动化测试用例。在两个团队通过MeterSphere平台进行协作的情况下,当接口用例发生变更时,测试人员能够及时得到通知,并且触发相应的MeterSphere平台自动化测试流程,保障了自动化测试流程的及时性和准确性;

■ 研发团队将需求开发完成后,会将开发代码提交至代码仓库,进行编译并生成对应的镜像后,会调用MeterSphere平台的API接口,触发冒烟测试和接口测试的自动化任务。如果测试任务在测试环境执行通过,则推送镜像至预发布环境;如果测试任务未通过,则进行回滚,由开发团队自测后再提测,保证功能的完整性和准确性,通过最终测试后再部署至生产环境。
在这里插入图片描述

▲ 图2 众乐邦的持续自动化测试体系

为了提高测试效率,众乐邦的测试团队从测试方法和测试工具两个方面进行了升级。在测试方法上,测试团队全面应用DevOps流程的持续测试能力,贯彻尽早且经常测试的原则,确保从开发的早期就开展测试,将测试贯穿至整个开发过程,从而能够更早地发现和解决测试中的问题;在测试工具上,测试团队使用MeterSphere平台完成所有测试工作,实现了从测试计划、测试执行到测试报告分析的全生命周期管理,通过自动化测试流程实现了测试的全过程可视化和深度追踪。

测试方法和测试工具的改进不仅提高了众乐邦测试的整体效率,还为团队创造了更多的时间,使项目团队能够更加灵活地应对项目需求的变化。众乐邦的自动化测试体系实践具体表现为以下五个方面:

1.全生命周期管理,过程可追溯

众乐邦在项目交付的过程中主要使用TAPD和MeterSphere进行项目的全生命周期管理。当项目处于开发阶段时,TAPD平台发挥着关键作用,TPAD在需求管理、项目计划和任务分配等方面的能力确保了项目的有序推进。

项目处于测试阶段时,MeterSphere则贯穿整个测试过程。MeterSphere平台涵盖了各类测试用例的创建、执行和管理,包括接口测试、性能测试和UI测试等能力。

TAPD与MeterSphere的结合,实现了需求管理和功能用例的无缝对接以及缺陷的双向同步。这使得项目团队可以在同一个平台上记录和管理项目各个阶段的信息和工作成果,从而降低了信息传递的误差,提升了团队的协同效率,让整个项目管理过程变得更加透明可控。
在这里插入图片描述MeterSphere

▲ 图3 众乐邦的项目全生命周期管理

2.细致的多维度权限控制

MeterSphere平台提供了精细的权限控制能力。从用户管理和角色分配,到项目级别的权限设置,再到用例、测试计划和测试报告的操作权限,全部都可以在MeterSphere平台上进行设置。MeterSphere平台确保了敏感信息仅被授权人员访问,有利于众乐邦进一步加强了团队的测试管理和安全管控。这种细致的权限控制为测试团队提供了信息安全性和完整性的有效保障。

另一方面,MeterSphere平台的权限控制也十分全面。MeterSphere平台不仅在系统设置层面有权限控制机制,在安全审计和日志记录层面也有相应的设计。通过记录操作日志,MeterSphere平台可以实现对用户操作历史的追溯。多维度的细致权限控制,使MeterSphere平台成为了众乐邦可信赖的项目全生命周期管理平台。
在这里插入图片描述

▲ 图4 MeterSphere的权限控制

3.研发测试协同,实现测试左移

以前的项目交付过程中,各个团队的工作比较独立,缺乏协作,导致众乐邦的接口用例由测试⼈员手工录⼊,不仅增加了测试人员的工作量,也降低了测试效率。现在,众乐邦的测试团队使用Swagger的⽂档定时导⼊功能完成接⼝定义后,开发团队在MeterSphere平台完成接⼝⾃测,前端开发团队通过MeterSphere平台的Mock功能实现前后端联调。

MeterSphere化身成为众乐邦团队间的协作平台,有效降低了团队间的沟通成本。众乐邦借助MeterSphere平台实现了协同后,测试团队和研发团队的工作效率得到了显著提升。

测试团队方面,测试成员在确定了接⼝变更影响到的⽤例时,可以在MeterSphere平台将变更后的参数信息自动同步至接口CASE,从而降低了接口用例的维护成本,为后续自动化测试打好了基础;研发团队方面,发版后DevOps流水线会⾃动触发测试计划,MeterSphere平台会自动进⾏接口回归测试,在提升测试覆盖率的同时,也减少了测试团队的重复⼯作量。
在这里插入图片描述

▲ 图5 MeterSphere的接口定义列表界面

4.实现数据驱动测试(Data-Driven Testing,简称为DDT)

众乐邦的接口自动化测试过程和业务流程之间存在强关联和强绑定,而MeterSphere平台的断言能力满足了众乐邦测试团队的数据驱动测试需求。

在实际应用中,众乐邦的业务规则复杂多样,业务流程中的数据互相关联,在一些特定业务场景下存在需要验证的边界条件,例如随机数生成、时间函数的构造、加密解密等。为了对这些数据进行有效管理,众乐邦对于接口测试中的输入数据、业务规则,以及期望的输出数据等业务数据信息,以参数的形式进行配置和管理。

在进行接口测试时,测试团队利用MeterSphere平台的断言功能,在执行接口自动化测试时动态改变断言条件,基于实际返回的数据进行提取、判断等操作,确保了接口测试能够全面覆盖业务场景,并且为接口在不同业务条件下的可靠性提供了保障。
在这里插入图片描述

▲ 图6 众乐邦的业务场景参数化过程

在这里插入图片描述

▲ 图7 MeterSphere的接口自动化功能界面

5.测试全过程可视化和深度追踪

众乐邦的测试团队将项目划分为多个模块进行测试,由测试人员统一完成基于具体功能的接口测试场景。测试团队在MeterSphere平台按照测试目录进行脚本编写,再由MeterSphere平台自动配置每晚执行相关功能的自动化测试任务。最后,测试报告会通过众乐邦的内部聊天工具“钉钉”机器人生成对应消息,并通知到指定人。除此以外,MeterSphere平台还会统计所有执行过程的数据,并生成测试报告。
在这里插入图片描述

▲ 图8 MeterSphere生成的测试报告

四、MeterSphere融入DevOps流水线后带来的收益

将MeterSphere平台融入Devops流水线后,众乐邦的测试团队实现了持续集成和持续交付,主要的收益体现在以下三个方面:

1.测试提效:截至目前,MeterSphere开源持续测试平台在众乐邦已经运行近一年的时间,测试团队在MeterSphere平台上已经创建了900多个接口用例,以及100多个接口和场景用例,项目的核心模块已经完全实现了接口自动化的目标;

2.测试开发协作:通过与测试团队共同使用MeterSphere平台,众乐邦的开发团队和测试团队一起维护和更新接口文档,开发团队参与到了测试过程中。测试开发协作让众乐邦的单接口测试覆盖率高达100%,业务场景自动化编排覆盖率达到90%。协同工作提高了测试的准确性和效率,使众乐邦的测试周期缩短了三分之一;

3.质量保障:测试团队使用MeterSphere平台的定时任务功能开展每日运行和发版前的回归自动化测试,有力保障了产品迭代上线的质量。另一方面,每个测试计划完成后,MeterSphere平台都会自动产生相应的测试报告,根据测试报告对测试用例、测试过程以及测试结果等多个维度进行分析,既有助于众乐邦的测试团队快速发现和反馈问题,也有利于研发团队修复缺陷和解决问题。
在这里插入图片描述

▲ 图9 MeterSphere的接口和场景数量统计仪表板

在使用了MeterSphere持续测试平台后,众乐邦的测试团队提升了测试效率,缩短了项目的测试周期,成功解决了一系列过去测试工作中的疑难问题。

结合目前的业务需求和未来规划,众乐邦的测试团队希望MeterSphere平台在未来能够实现更多场景的优化和自动化。例如优化异步接口测试,实现更智能的场景执行和结果判断;提升操作效率,支持多选接口批量拖拽至当前场景;扩展数据统计和报表功能,满足不同角色对测试进度和质量的跟踪需求等,以进一步提高测试质量和加速项目交付。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

平台系统的微信支付服务突然不可用问题记录

背景 我们平台系统的微信支付突然不可用,用户点击支付都提示错误“系统繁忙”。 排查 查看日志,发现“支付聚合服务”调用“微信支付服务”的http请求返回read timeout,问题很显然出在“微信支付服务”。http请求报read timeout&#xff0…

全球顶级的低代码开发平台,你知道几个?

什么是低代码开发平台? 低码开发平台是一个应用程序,提供图形用户界面编程,从而以非常快的速度开发代码,减少了传统的编程工作。 这些工具有助于快速开发代码,最大限度地减少手工编码的努力。这些平台不仅有助于编码,而且还能快速安装和部署。 低码开发工具的好处 低代码平…

【JavaSE】你真的了解内部类吗?

前言 本篇会详细讲解内部类的四种形式,让你掌握内部类~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 前言 内部类介绍 实例内部类 定义 调用 静态内部类 定义 调用 匿名内部类 定义和调用1 调用方法2 …

vs2019 - detected memory leak

文章目录 vs2019 - detected memory leak概述笔记vs2019 consolevs2019 MFC Dlg但是,工程大了之后,VS2019提示的就变了样整好的内存泄漏侦测头文件和实现my_debug_new_define.hmy_debug_new_define.cpp在所有.cpp文件入口处包含my_debug_new_define.h包含…

计算机系列之操作系统的系统

2、大话操作系统的启动 当按下开机键时,BIOS 就会开始执行 ​ BIOS 就是放在主板上 ROM 里面的一段程序。 ​ ROM Read Only Memory(只能读取的内存) ​ 所以 BIOS 在出厂的时候就可以直接写死在 ROM 里面。 ​ 每次开机的时候&#xff…

【数据结构与算法】之双向链表及其实现!

​ 个人主页:秋风起,再归来~ 数据结构与算法 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 目录 1、双向链表的结构及概念 2、双向链表的实现 2.1 要实现的接口…

Mac版2024 CleanMyMac X 4.15.2 核心功能详解 cleanmymac这个软件怎么样?cleanmymac到底好不好用?

近些年伴随着苹果生态的蓬勃发展,越来越多的用户开始尝试接触Mac电脑。然而很多人上手Mac后会发现,它的使用逻辑与Windows存在很多不同,而且随着使用时间的增加,一些奇奇怪怪的文件也会占据有限的磁盘空间,进而影响使用…

Android studio顶部‘app‘红叉- Moudle ‘XX.app’ dosen’t exist in project

Android studio顶部app红叉- Moudle ‘XX.app’ dosen’t exist in project 1、现象: 运行老项目或者有时候替换项目中的部分代码,明明没有错但是Android studio就编译报错了。 1.1 Android studio顶部app红叉。 1.2 点击Build没有clear菜单&#xff0…

软考 - 系统架构设计师 - 嵌入式真题

问题 1: (1).HTML 静态化:可以实现对系统经常访问的页面进行静态化以提高系统访问的效率,但系统页面通常需要数据库中的用户信息和用户选择来动态显示,因此不适合采用。 HTML 静态化: 将动态生成…

windows下已经创建好了虚拟环境,但是切换不了的解决方法

用得多Ubuntu,今天用Windows重新更新anaconda出问题,重新安装之后,打开pycharm发现打开终端之后,刚开始是ps的状态,后面试了网上改cmd的方法,终端变成c盘开头了 切换到虚拟环境如下:目前的shell…

ON1 NoNoise AI 2024 for Mac/Win:智能降噪,重塑影像之美

在数字摄影领域,图片质量往往受到多种因素的影响,其中噪点问题尤为突出。ON1 NoNoise AI 2024作为一款专为Mac和Windows平台打造的AI图片降噪工具,凭借其卓越的降噪性能和智能化的操作体验,成为了摄影师和图像处理专家们的首选工具…

NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL、SQL-PaLM)、新一代数据集BIRD-SQL解读

NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL)、新一代数据集BIRD-SQL解读 NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2…

基于Springboot+Vue的Java项目-免税商品优选购物商城系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

故障转移-redis

4.4.故障转移 集群初识状态是这样的: 其中7001、7002、7003都是master,我们计划让7002宕机。 4.4.1.自动故障转移 当集群中有一个master宕机会发生什么呢? 直接停止一个redis实例,例如7002: redis-cli -p 7002 sh…

Linux环境变量(一)

一.main参数 如果你仔细看过编程书籍就会发现,对于主函数main函数也是有参数的: 首先,我们先来认识两个参数: int main(int argc,char* argv[]) {return 0; } 对于这两个参数:第一个参数int类型表示为第二个的个数…

[C++][算法基础]判定二分图(染色法)

给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。 请你判断这个图是否是二分图。 输入格式 第一行包含两个整数 n 和 m。 接下来 m 行,每行包含两个整数 u 和 v,表示点 u 和点 v 之间存在一条边。 输出格式 如果给定图是二分图…

字体反爬知识积累2

一、os模块中函数的应用 如何获取当前文件中所有文件的路径方法 这段代码使用 os.walk()函数来遍历指定目录 imgs 下的所有子目录和文件。具体来说,os.walk()函数返回一个生成器,可以在每次迭代中获取目录树中的一个元组,元组包含当前目录的…

【算法】删除链表中重复元素

本题来源---《删除链表中重复元素》。 题目描述 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回已排序的链表 。 示例 1: 输入:head [1,1,2] 输出:[1,2]示例 2: 输入…

Delphi Xe 10.3 钉钉SDK开发——审批流接口(获取表单ProcessCode)

开发钉钉审批流时,需要用到钉钉表单的Processcode,有两种方法 : 一、手动获取: 管理员后台——审批——找到对应的表单:如图: ProcessCode后面就是了! 二、接口获取:今天的重点&a…

Redis消息队列-基于Stream的消息队列-消费者组

7.5 Redis消息队列-基于Stream的消息队列-消费者组 消费者组(Consumer Group):将多个消费者划分到一个组中,监听同一个队列。具备下列特点: 创建消费者组: key:队列名称 groupName&#xff1a…
最新文章