社区分享|中华保险基于MeterSphere开展接口自动化测试

中华联合保险集团股份有限公司(以下简称为“中华保险”)始创于1986年,是全国唯一一家以“中华”冠名的国有控股保险公司。截至2022年12月底,中华保险总资产为1006.06亿元,在全国拥有超过2900个营业网点,员工超过4万人。中华保险坚持“服务国家、服务三农、服务民生,全心全意为人民群众提供保险保障”的初心使命,坚持以客户为中心,以科技、保险、投资为驱动,致力于打造客户满意、员工获益、股东放心、社会认可的高质量、有价值的现代金融保险集团。

一、引入接口自动化的背景

1.需求快速迭代,回归测试成本越来越高

随着新一代IT系统建设的深入推进,中华保险的项目体量越来越大,软件版本高速迭代,基本保持一周一次小迭代和两周一次大迭代的频率,而且每次迭代发布的应用超过180个,单次人工回归测试的成本越来越高;

2.业务复杂度高,流程长且繁琐

保险业务的流程非常复杂,例如承保链路,从开始出单到生成保单的过程中可能涉及几十个系统之间的互相调用,涉及到的接口更是近百个。加之保险产品的种类繁多,而且每种产品都有不同的条款、费用计算方式等,重复性工作较多,人工测试很难实现完全覆盖;

3.系统特性明显,回归有效性难以衡量

随着保险业务中台的建设,中台对外提供的基本都是接口,没有页面。这给测试团队的工作带来了许多困难,比如人工测试不方便、回归测试时容易出现遗漏、重度依赖平台方的测试结果等,导致测试管理难以衡量回归有效性。

二、为什么选择Metersphere开源持续测试平台?

1.自动化体系总体架构

基于中华保险的数字化战略背景和“需求交付短平快”的原则,中华保险的测试团队希望在技术资源有限的前提下,选择一款一站式的开源持续测试平台作为基建平台,打造一套属于自己的自动化测试体系。

两年多来,经过不断实践和打磨,中华保险的测试团队已经确定了其自动化测试体系的整体架构。从最初的雏形想法,到如今的成熟落地,在这一过程中,自动化接口测试已经成为测试团队每位成员的基础能力,并且串联在整个项目的流程之中。中华保险的自动化测试体系框架如图1所示。
在这里插入图片描述

▲图1 中华保险的自动化测试体系框架

中华保险测试团队的自动化测试体系框架主要由以下模块构成:即培训分享、持续集成层、监控告警层和度量管理层。

■ 培训分享:展开不定期的培训分享,提升团队的自动化意识。小到自动化平台的操作使用和标准规范的制定,大到每年一次的“自动化月”主题活动。通过这些活动,让测试团队成员从认知上重视自动化,理解自动化的价值与意义,以及其在日常测试中的重要性;

■ 持续集成层:充分利用自动化的价值。借助自动化平台的能力,在平台的基础能力之上挖掘更多价值,并将其强串联在项目流程的各个阶段中,使其发挥更大作用,以获得更高的ROI(Return on Investment,投资回报率);

■ 监控告警层:借助通知和播报能力,实现工作效率和影响力的双重提升。主动通知感知脚本的稳定性,并且定期向外播报自动化测试的稳定性结果,既可以督促测试团队成员自觉加强自己的脚本稳定性,也可以提高测试部门对外的影响力;

■ 度量管理层:科学管理测试团队,提升自动化率。构建代码覆盖率平台,让每个测试团队成员真实的自动化率有了更加直观的反映,也给质量管理层提供了更好的抓手。

2.自动化测试平台的建设进程

在选择自动化测试基础设施时,中华保险的测试团队调研、对比和分析了市面上的多个开源自动化测试平台。从工具的易用性、基础功能的完善度、社区的活跃度和功能拓展的便利程度等维度综合考虑后,中华保险的测试团队最终选择了MeterSphere开源持续测试平台作为其统一的自动化测试基础设施,并于2021年5月开始使用。

MeterSphere开源持续测试平台的系统架构如图2所示。
在这里插入图片描述

▲图2 MeterSphere开源持续测试平台的系统架构

MeterSphere平台提供的接口测试功能很好地契合了中华保险自动化测试的需求。对于中华保险的测试团队来说,MeterSphere开源持续测试平台的主要优点包括:

■ 用例编写可视化,降低测试门槛

MeterSphere开源持续测试平台能够实现用例编写的可视化,这一功能有效提升了平台的易用性,便于测试人员快速上手,有利于业务聚焦;

■ 支持多种格式的接口集导入和定时同步

MeterSphere平台兼容多种协议,支持多种协议类型的API管理,包括HTTP、TCP、RPC等协议,极大地方便了中华保险测试团队对各域接口进行统一管理。MeterSphere平台还支持Postman、Swagger、JMeter等多种格式的接口用例集导入和定时同步,还可以通过插件打通IDEA与测试平台进行接口同步;

■ 采用主流技术栈,方便二次开发

MeterSphere平台使用Java语言开发,采用了前后端分离的架构设计,后端使用Spring Boot框架,前端使用Vue.js框架,这些技术栈与中华保险测试团队人员使用的技术栈相匹配,方便开展二次开发。除此以外,MeterSphere平台在接口自动化功能和性能测试功能上与JMeter保持一致,并在一定程度上对其进行了二次封装,这使得测试操作更加简单、方便;

■ 丰富的插件体系,扩展性强

目前,MeterSphere平台对外提供了许多插件,比如支持发布流水线接入的Jenkins插件、支持工程中接口同步的IDEA插件、支持UI测试的Selenium插件等,甚至还支持用户开发各种自定义插件。丰富的插件种类和活跃的开源社区极大便利了中华保险测试团队发挥MeterSphere平台的业务价值。

三、自动化测试的成果与实践

1.接口自动化现阶段成果

由于从准备建设自动化测试平台之初,中华保险的测试团队就选定了Metersphere平台,所以减少了很多不必要的麻烦,例如资产迁移、换工具的学习成本等。截至目前,中华保险内部已接入MeterSphere平台的应用系统为62个,平台用户277人,沉淀的接口用例数和场景数多达24,000条,P0级核心回归链路的自动化率超过70%。

仅2023年,中华保险的测试团队就通过MeterSphere平台拦截了近百个缺陷或环境问题。借助MeterSphere平台在自动化脚本方面的赋能,通过脚本实现复杂链路造数功能达到数十条。基于保险业务的特性,在回归测试之外,中华保险的测试团队在日常业务测试中也会使用MeterSphere平台,例如产品域通过CSV数据驱动的方式,实现了多个功能模块的业务测试自动化。
在这里插入图片描述

▲图3 借助MeterSphere平台实现业务测试自动化

2.MeterSphere平台中的接口自动化实践

中华保险的核心业务链路,大到承保链路、批改链路、履约链路,小到单个保费的计算功能,涉及的系统、场景、接口都非常多,链路也都非常长。测试团队在两年多的实践过程中遇到过各种各样的问题,但总能通过Metersphere平台找到对应的解决办法。以下抽取其中一部分实际场景来举例说明:

■ 公共场景提取,提高脚本的易维护性

随着版本的快速迭代,场景越来越多,当脚本沉淀到一定量级时,对脚本的易维护性的要求就变得非常高。因此在编写接口自动化脚本时,脚本的易维护性尤为重要。在中华保险测试团队的规范中,会要求提取出通用场景作为原子场景。如图4所示,在保单服务域中,定义完大量的原子场景后,在MeterSphere平台中只需通过组装和编排,即可得到最终的自动化链路;
在这里插入图片描述

▲图4 MeterSphere平台中的场景引用

■ 常规断言和传参较难,使用脚本更加灵活

中台查询保单详情接口时,返回的报文可能多达上万行。如果使用常规的断言和传参方式,会导致工作量变得非常大,脚本的可维护性也会变差。在面对这种情况时,中华保险的测试团队借助Metersphere平台支持编写多种语言脚本的特性,采用了更为灵活的方式,使用代码脚本快速完成工作(如图5所示);
在这里插入图片描述

▲图5 MeterSphere平台支持自定义脚本

■ 利用插件,便于持续集成

为了将自动化测试串联在CI/CD(持续集成/持续部署)流水线中,需要在部署完成后,自动触发自动化的脚本。但中华保险的部署工具LinkE不支持打通。好在Metersphere平台提供了Jenkins插件,中华保险的测试团队才能轻松打通测试链路,具体链路如图6所示。
在这里插入图片描述

▲图6 在CI/CD中串联自动化测试

3.Metersphere开源持续测试平台的能力拓展

■ 数据工厂

因为回归测试和日常造数据需求的脚本基本重合,所以在完成了自动化脚本后,中华保险的测试团队希望脚本不但能够满足回归测试的需求,也能满足日常造数据的需求,从而实现脚本收益的最大化。为此,测试团队抽取了部分通用的自动化脚本,集成到质量平台上,通过间接执行并且统计脚本收益的方式,延伸完成了数据工厂的后端框架搭建,具体如图7所示;
在这里插入图片描述

▲图7 中华保险的数据工厂后端框架

■ 自动化结果数据延伸

截至目前,中华保险的测试团队每天定时、部署后自动触发的测试计划达到上百次,测试场景超过3000次。为了充分利用这些数据,提高测试团队成员主动维护自动化脚本的意识和对外的影响力,中华保险的测试团队制作了自动化测试周排行榜,定期进行播报。
在这里插入图片描述

▲图8 在质量平台中发布自动化结果周报
在这里插入图片描述

▲图9 定期公布自动化通过率

四、自动化测试的规划与展望

1.降低系统间的耦合性

完成一条完整的承保主链路,涉及的系统非常多,并且系统之间互相耦合。目前,系统间主要通过RPC接口访问,现有的HTTP接口的Mock能力已经不能满足所需,中华保险的测试团队计划在未来加强RPC的Mock能力,从而提高整体的自动化脚本通过率,降低噪音;

2.测试场景自动生成

中华保险的测试团队希望已有的流量回放平台和MeterSphere平台能够打通,使流量回放录制的接口报文在MeterSphere平台自动回放,从而自动生成真实测试场景及参数,使场景覆盖更加全面、真实,得到更高的ROI;

3.测试用例智能关联

MeterSphere平台已经具备了自动化脚本管理和测试用例管理的能力,并且能够实现脚本和测试用例的互相关联。但是,随着应用的频繁迭代,自动化脚本的数量会越来越多,如果每次都跑全量的自动化脚本,测试时会十分困难且效率低下。中华保险的测试团队期待未来通过精准连接测试平台,在开发人员改动代码后,MeterSphere平台能够智能关联对应的测试用例及自动化脚本,从而实现精准的自动化测试。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

06 分频器设计

分频器简介 实现分频一般有两种方法,一种方法是直接使用 PLL 进行分频,比如在 FPGA 或者 ASIC 设计中,都可以直接使用 PLL 进行分频。但是这种分频有时候受限于 PLL 本身的特性,无法得到频率很低的时钟信号,比如输入 …

Windows安装PHP及在VScode中配置插件,使用PHP输出HelloWorld

安装PHP PHP官网下载地址(8.3版本):PHP For Windows:二进制文件和源代码发布 点击下载.zip格式压缩包: 历史版本在Old archives中下载。推荐在Documentation download中下载官方文档,方便学习。 下载完成后在一个顺眼的地方解压压…

Point.java

Point.java 让我们来找茬,(⊙o⊙)看看哪里不一样咯!!! package algorithm_graphics_2;/** Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject t…

Zabbix 6.2.1 安装

目录 1、监控介绍 监控的重要性 网站的可用性 监控范畴 如何监控 2、Zabbix 介绍 zabbix 简介 zabbix 主要功能 zabbix 监控范畴 Zabbix 监控组件 zabbix 常见进程 zabbix agentd 工作模式 zabbix 环境监控中概念 3、搭建LNMP 拓扑规划 安装MySQL 安装 Nginx …

【视频编解码】M-JPEG压缩、H.264压缩 对比

简介 参考这篇文章:https://blog.csdn.net/qq_41248872/article/details/83590337 写的比较好,这里就不赘述了。 我们在视频传输的时候,需要压缩,常见的压缩包括: jpeg 压缩h264 压缩 当然使用最多的还是 264, 毕竟他的压缩比…

【Flink经济】Flink 内存管理

面临的问题 目前, 大数据计算引擎主要用 Java 或是基于 JVM 的编程语言实现的,例如 Apache Hadoop、 Apache Spark、 Apache Drill、 Apache Flink 等。 Java 语言的好处在于程序员不需要太关注底层内存资源的管理,但同样会面临一个问题&…

【快速搞定Webpack5】修改输出文件目录及自动清理上次打包文件(五)

介绍 默认情况下webpack打包后,我们的图片和js等文件都会被打包到dist目录下,文件多了混淆在一起一方面不利于文件的查找和管理,另外一方面看上去也不美观。 所以今天我们学习的内容就是控制输出后的文件进入不同的目录。 一、配置 新增4…

小米标准模组+MCU 快速上手开发(二)——之模组串口调试

小米标准模组MCU 开发笔记之固件调试 背景技术名词简介● 小米IoT开发者平台● 小米IoT 模组● 固件● OTA● CRC32 固件双串口调试● MHCWB6S-IB 模组资料下载● MHCWB6S-IB 模组管脚图● 上电调试 背景 小米标准模组MCU的开发过程中,由于部分官方资料较为古早&am…

压缩感知常用的重建算法

重建算法的基本概念 在压缩感知(Compressed Sensing, CS)框架中,重建算法是指将从原始信号中以低于奈奎斯特率采集得到的压缩测量值恢复成完整信号的数学和计算过程。由于信号在采集过程中被压缩,因此重建算法的目标是找到最符合…

MATLAB 导出可编辑的eps格式图像

任务描述:部分期刊要求提交可编辑的eps格式图像,方便美工编辑对图像进行美化 我试了直接print或者在figure窗口导出,发现导出的文件放到Adobe AI中并不能编辑,经Google找到解决办法: %EPS exportgraphics(gcf,myVect…

微信小程序 ---- 慕尚花坊 项目初始化

目录 项目介绍 01. 项目概述 02. 项目演示 03. 项目技术栈 04. 接口文档 申请开发权限 项目初始化 01. 创建项目与项目初始化 02. 自定义构建 npm 集成Sass 03. 集成项目页面文件 04. VsCode 开发小程序项目 项目介绍 01. 项目概述 [慕尚花坊] 是一款 同城鲜花订购…

js设计模式:依赖注入模式

作用: 在对象外部完成两个对象的注入绑定等操作 这样可以将代码解耦,方便维护和扩展 vue中使用use注册其他插件就是在外部创建依赖关系的 示例: class App{constructor(appName,appFun){this.appName appNamethis.appFun appFun}}class Phone{constructor(app) {this.nam…

【C++初阶】类和对象(中)

目录 一.类的6个默认成员函数 1.知识引入 ​编辑 2.构造函数 (1)概念 (2)语法特性 (3)特征 ①问题引入1 ②问题引入2 (缺少默认构造函数) 3.析构函数 (1)概念 (2)特性 4.拷贝构造函数 (1)概念 (2)特征 ①拷贝构造函数是构造函数的一…

pclpy SOR去除异常值(统计滤波)

pclpy SOR去除异常值-统计滤波 一、算法原理1.背景2.原理 二、代码三、结果1.原点云2.sor处理后的点云(内点)3.sor处理后的点云(外点) 四、相关数据 一、算法原理 1.背景 激光扫描通常会生成不同点密度的点云数据集。此外&#…

【OpenSSH+Jenkins搭建项目自动化部署】

OpenSSHJenkins搭建项目自动化部署 一、Windows安装OpenSSH1.下载2.解压3.安装4.启停服务5.SSH免密登录 二、Jenkins安装1.下载2.安装启动3.登录 三、项目自动化部署1.SSH配置2.项目配置3.权限控制 一、Windows安装OpenSSH 1.下载 https://github.com/PowerShell/Win32-0penS…

常见的排序算法整理

1.冒泡排序 1.1 冒泡排序普通版 每次冒泡过程都是从数列的第一个元素开始,然后依次和剩余的元素进行比较,若小于相邻元素,则交换两者位置,同时将较大元素作为下一个比较的基准元素,继续将该元素与其相邻的元素进行比…

用于扫描机密的开源解决方案

TruffleHog 最初是在 2016 年独立创作的一个研究工具。当发布它时,没有工具扫描 Git 修订历史记录以获取秘密。我的预感是旧版本的代码中隐藏着很多秘密,但没有工具可以查找它们。 我的预感是对的。该工具迅速流行并变得非常流行。如今,它在…

数据库管理-第153期 Oracle Vector DB AI-05(20240221)

数据库管理153期 2024-02-21 数据库管理-第153期 Oracle Vector DB & AI-05(20240221)1 Oracle Vector的其他特性示例1:示例2 2 简单使用Oracle Vector环境创建包含Vector数据类型的表插入向量数据 总结 数据库管理-第153期 Oracle Vecto…

启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000

启动node服务报错: 解决方案: 将监听端口改成3000或者其他 修改后结果: 参考原文: Error: listen EACCES: permission denied_error when starting dev server: error: listen eacc-CSDN博客

板块一 Servlet编程:第八节 文件上传下载操作 来自【汤米尼克的JavaEE全套教程专栏】

板块一 Servlet编程:第八节 文件的上传下载操作 一、文件上传(1)前端内容(2)后端内容 二、文件下载(1)前端的超链接下载(2)后端下载 在之前的内容中我们终于结束了Servle…