编者注:在2023年2月25日举办的 “2023 MeterSphere 开源持续测试平台城市遇见· 北京站” 活动中,农银金融科技有限责任公司高级研发经理齐婵分享了题为《金融科技公司 DevOps 与持续测试应用实践分享》的主题演讲。以下内容根据本次演讲整理而成。

农银金融科技有限责任公司(以下简称为农银金科),是农银集团全资子公司,成立于时间 2020 年。作为农银集团金融科技输出的重要窗口和平台,农银金科面向集团内外部客户提供信息化建设服务、场景金融生态建设、科技输出和创新技术研究等业务。

农银金科高级研发经理 齐婵

一、农银金科 DevOps 建设

为了打破研发、测试和运维人员之间的沟通壁垒,让公司的产品交互能够更加地顺畅和高效,农银金科内部以 DevOps 的标准来践行软件交付相关的工作,以实现开发运营一体化。其中,自动化测试是 DevOps 体系中的重要一环,这也成为了农银金科团队引入和应用 MeterSphere 一站式开源持续测试平台的原生动力。

■ DevOps 工作流与工具链

依托 DevOps 平台,农银金科落地了端到端的 DevOps 工作流,建立了覆盖研发、测试、部署等全流程的工具链体系,全面实现工程管理的线上化、自动化。

■ 打造产品版本管理中心

除了 DevOps 平台中大家比较熟悉的需求管理和流水线功能以外,值得一提的就是农银金科团队还依托 DevOps 平台打造了一个产品版本管理中心,建立了产品版本管理的机制,并将需求、测试计划、流水线、代码基线、制品、缺陷、测试报告、变更信息进行集中管理,建立起全链路质量追踪的通道,有效追踪研发过程度量数据的同时,融入了自动创建分支、自动收集质量数据、自动部署等多种自动化能力,在企业里逐步树立起了产品版本管理的意识。

二、MeterSphere 开源持续平台在农银金科的应用

2.1 测试平台选型

农银金科在成立之初,为了提升研发及测试的效率,让研发过程更加规范,同时也考虑到需要去建设 DevOps 一体化的流程,就产生了引入一款自动化测试平台的构想,希望通过这个平台去承载包括测试跟踪、接口测试和性能测试等相关的工作。

在产品选型的过程中,农银金科主要考虑了以下几个方面的能力:

■ DevOps 的支持能力:能够很好地融入到 CI/CD 的流程中;

■ 一站式的能力:测试工作所需使用的测试管理、性能测试、接口测试等测试工具相对较为分散,不利于统一的资产管理,资产的后期管理与维护成本高,因此希望有个平台能够聚合多个工具,提供一站式的测试能力;

■ 具备可拓展性:能够提供 API 接口或者有良好的库表结构,便于组织进行测试能力延伸,帮助测试人员去进行数据分析等;

■ 易用性强:平台学习成本较低,能够让测试人员不需要经过大量的培训,就可以快速投入使用。

基于以上这些考虑,农银金科进行很多的工具调研及选型,包括一些开源工具和商业工具,比如 JMeter 等,最终选择了 MeterSphere 开源持续测试平台,并且成功地引入和全面应用到了农银金科研发管理体系中。

2.2 一站式测试管理与执行平台

引入 MeterSphere 平台以后,农银金科将 MeterSphere 平台定位为了公司的一站式的测试管理和执行平台。

■ 平台承载农银金科测试过程中所有测试资产的管理工作,以项目维度去进行统一的管理。

测试人员可以根据发版计划创建版本测试计划,并关联相关的测试用例,再基于测试结果一键创建缺陷,实现需求/用例/缺陷之间的双向可追溯。

■ 全面落地测试左移,团队的工作协同度提升。

项目开始实施时,研发、测试人员通过迭代会尽早达成需求一致,测试人员提前开展功能测试用例的编写工作,开发人员负责更新 API 定义并充分参与到接口测试工作中,接口的更新实时触达测试人员。通过这样的形式,测试人员能够尽早地启动测试,同时开发人员也参与到了部分测试工作中。

■ MeterSphere 深度结合 DevOps 平台流水线与产品版本管理,实现了自动化调起和自动化收集结果等功能。

可以看到在上图中对应的四套环境里面,各个项目会按需执行不同的测试内容。比如在 DEV 环境用户可以通过流水线,自动触发全量的接口自动化测试;在 TEST 环境,会由测试经理去触发整个测试计划的自动执行;进入到 PRE 环境和 PROD 环境,测试人员可以选取关键、核心的用例进行二次的验证。在每个环境之间,通过质量门禁来卡控测试执行的结果,以确保质量的可控性。全流程通过产品版本管理来实现联动,并实现质量数据的自动采集。

2.3 MeterSphere 平台各模块应用情况

■ 测试计划管理

在测试计划管理模块,团队跟随应用版本计划来创建测试计划,并且在农银金科的 DevOps 平台进行关联绑定,集中管理版本测试资产,直观掌握测试进度。

■ 功能用例管理

测试人员按需采用表格/脑图/在线编辑等方式,快速完成功能用例的编写,项目团队可以在线评审用例。各个项目功能用例按模块分类管理,对应关联到 DevOps 平台上的需求,建立起了需求、用例、缺陷这三个测试关键要素的双向追溯关系。

■ 接口用例管理

在接口用例管理部分,是由开发人员去维护接口列表,测试人员进行接口用例的更新,实现了高效信息共享与工作协同。目前农银金科内部可以保证所有项目的接口在 MeterSphere 平台得到 100% 的覆盖。

■ UI 测试用例

UI 测试部分,农银金科在 MeterSphere 平台的元素库中将各个项目按照功能模块进行的拆分,集中管理便于维护。因为平台已对脚本类操作做好了封装,测试人员可以轻松完成 UI 测试用例的编写。调试过程清晰可见,测试结果支持生成截图与报告。

MeterSphere 的 UI 测试功能具有低学习成本、低设计成本、低维护成本和高执行效率的特点,可以有效补充到团队在接口测试方面没有触达的测试点。

■ 性能测试

在性能测试方面,MeterSphere 平台可以基于接口用例直接一键生成性能用例。测试人员无需重复编写脚本,只需要做一些参数的配置,比如说并发数、压测时间等,就可以去调度压测集群执行相关任务了。同时 MeterSphere 平台还支持实时查阅测试报告。

■ DevOps 流水线

农银金科内部是通过开发 MeterSphere 插件的形式来实现任务调度的。最终的实现效果是流水线可以按需灵活调起测试计划、单接口、接口场景、UI 场景等各种类型的自动化测试,实时输出测试结果,与持续集成联动实现部署即测试。

三、MeterSphere 平台落地效果

■ 企业级的测试平台,助力落地持续测试

农银金科运用 MeterSphere 平台,在内部建立起了测试管理体系,形成了与 DevOps 平台全面集成、覆盖全测试类型的统一测试管理平台。平台全面承载公司测试计划、接口定义、测试用例等关键资产的集中管理与自动化执行工作,实现了测试工作的集中化、规范化、自动化,全面提升了公司的测试效率。

通过产品版本管理与流水线自动化测试相结合,有效落地了持续测试。推动实现测试工作的左移,测试资产的更新维护更加及时,开发人员和测试人员的协同更加高效,研发过程质量自检更加充分。

■ 通过 DevOps 认证评级

2022 年 7 月,农银金科顺利通过了信通院 DevOps 能力成熟度评估认证,取得了 DevOps 能力成熟度持续交付三级、系统与工具(流水线部分)优秀级双项证书,成为业内首个同时获得工具和持续交付两个标准评估的银行系金融科技公司。

■ 产品的质量数据可追溯

MeterSphere 平台协助农银金科团队以产品版本管理为主线,建立起需求、测试计划、测试用例、缺陷与需求、代码版本、构建、发布等要素之间的关联关系,实现了数据全流程双向可追溯,结合测试数据看板,帮助团队逐步形成全流程质量内建的意识。

在质量数据可视化方面,团队还使用了 FIT2CLOUD 飞致云旗下的开源数据可视化分析工具 DataEase,搭建了农银金科的测试质量大屏,帮助团队直观地了解当前测试平台的应用情况,也给上层领导提供了更多的决策依据。

截至目前,MeterSphere 平台在农银金科已经承载超过 70 个项目的用例的管理,在平台创建了超过 11 万个功能用例、15000 多个接口用例,及 25000 多个接口和场景用例,在 UI 测试模块的用例数量也接近 1000 个。

四、未来展望

在深度使用 MeterSphere 开源持续测试平台的同时,农银金科还希望这个平台能够在未来不断成长,尤其是在持续测试 “一站式” 的能力方面,希望能够拓展新的功能疆界。

■ 进一步提升与 DevOps 平台的集成能力

希望 MeterSphere 平台能持续完善与 DevOps 平台对接的相关能力,提供更加顺畅的对接体验。例如,让缺陷管理更加方便、信息对接更加实时、用户体验更加丝滑等,探索更多的应用可能;

■ 扩展 UI 测试能力

在 UI 测试方面,希望能够持续丰富操作场景,提供 MeterSphere 专属的界面录制工具,UI 测试支持资源池运行,UI 执行场景支持实时视频观看等,持续提高 UI 测试的执行效率和测试稳定性;

■ 扩展数据统计、数据报表等能力

基于 MeterSphere 平台打造更加多维、服务不同层级用户的测试数据度量视图,帮助企业高管、项目经理、测试人员等角色从不同角度进行测试进度和测试质量的跟踪分析;

■ 持续延伸测试平台能力域

希望 MeterSphere 的研发团队探索移动端兼容性测试、安全测试等融入平台的可能性,打造一个真正的集成全测试类型的统一平台,让用户能够聚焦在一个平台完成所有测试工作。另外,还希望尝试应用精准测试、AI 技术融入等技术方向,让测试更加精准、自动和智能。


↙↙↙阅读原文可查看相关链接,并与作者交流