社区分享|中华保险基于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平台能够智能关联对应的测试用例及自动化脚本,从而实现精准的自动化测试。

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

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

相关文章

2024 年广西职业院校技能大赛高职组《云计算应用》赛项赛题第 3 套

#需要资源或有问题的,可私博主!!! #需要资源或有问题的,可私博主!!! #需要资源或有问题的,可私博主!!! 某企业根据自身业务需求&…

模仿Gitee实现站外链接跳转时进行确认

概述 如Gitee等网站,在有外部链接的时候如果不是同域则会出现一个确认页面。本文就带你看看这个功能应该如何实现。 效果 实现 1. 实现思路 将打开链接作为参数传递给一个中间页面,在页面加载的时候判断链接的域名和当前网站是否同域,同域…

web学习笔记(二十六)

目录 1.JS执行队列 1.1JS是单线程 1.2Web Worker 1.3同步和异步 1.4JS执行机制 2.location对象 2.1什么是location对象 2.2url包含的信息 2.3location对象属性 2.4location对象的方法 3.navigator对象和history对象 3.1navigator对象 3.2history对象 1.JS执行队…

基于深度学习的苹果叶片病害检测系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型:     yolov8 yolov8主要包含以下几种创新:         1. 可以任意更换主干结构,支持几百种网络主干。 数据集:     网上下载的数据集&#x…

Jmeter吞吐量控制器使用

场景:在同一个线程组里,有10个并发,7个做A业务,3个做B业务,要模拟这种场景,可以通过吞吐量模拟器来实现。 添加吞吐量控制器 用法1:Percent Executions 在一个线程组内分别建立两个吞吐量控制…

rtt的io设备框架面向对象学习-电阻屏LCD设备

目录 1.8080电阻屏LCD设备1.1 构造流程1.2 使用 2.spi电阻屏LCD3.i2c电阻屏LCD4.总结 电阻屏LCD通信接口有支持I2c、SPI和8080通信接口的,根据通信接口分立章节。 另外,lcd这块不像其他设备类,rtt没有实现lcd设备类的设备驱动框架层&#xf…

我们发布了一款类Wox和Alfred,全新的桌面端效率工具RunFlow,欢迎大家来体验

RunFlow是一款跨平台的生产力工具,可以启动应用程序和搜索文件等,类似于Windows平台的Wox和PowerToys,同样也类似于Mac平台的Alfred和Raycast。但我们并不与这些工具相同,我们有自己独特的新特性。下面,我们将向您详细…

仙宫云:细节控ComfyUI AI写实摄影+视频镜像

在使用comfyui工作流时经常遇到插件安装,模型下载的问题,为了方便大家使用和体验comfyui,我在仙宫云上部署了一个云端comfyui镜像包,开放给大家使用。 细节控ComfyUI AI写实摄影视频工作流: 镜像主页:仙宫…

Stable Diffusion V3测评

1.引言 3月5号,Stability AI发布了介绍Stable Diffusion V3的研究论文,链接地址:戳我 这是目前他们发布的最先进、功能最强大的图像生成器,与一年多前发布的令人印象深刻的 Stable Diffusion V2.1 相比有了大幅升级。SD3所带来的…

机器视觉 /从bottle.hdev示例程序开启HalconHDevelop征程

文章目录 概述示例程序bottle.hdev源码Step 0: PreparationsStep 1: Segmentation - 读取并显示图片Step 1: Segmentation - 创建并设置OCR模型Step 1: Segmentation - 文本分割与识别计算结果显示内存释放 导出为C代码导出为C代码配置 VS Halcon 环境VS程序执行结果HTuple hv…

代码随想录day13(1)栈与队列:用栈实现队列(leetcode232)

题目要求:使用栈实现push、pop、empty、peek(返回队列首部元素)。 思路:本题思路比较容易,即用两个栈模拟即可,pop时只需要先判断stackout栈是否为空,如果不空直接弹出,如果空就将s…

数据库-ER图教程

一.什么是E-R图 E-R图全称:“Entity-Relationship Approach”,是一种“实体-联系”方法。 E-R图的优点: 1.自然地描述现实世界。 2.图形结构简单。 3.设计者和用户易理解。 4.是数据库设计的中间步骤,易于向数据模型转换。 …

SSM框架,SSM框架的整合

SSM整合的介绍 微观:将Spring SpringMVC Mybatis框架应用到项目中 SpringMVC框架负责控制层Spring 框架负责整体和业务层的声明式事务管理MyBatis框架负责数据库访问层 宏观:Spring接管一切(将框架核心组件交给Spring进行IoC管理&#xff09…

贝叶斯:最大似然估计与最大后验估计

最大似然估计 最大后验估计 《神经网络与深度学习》 Neural Networks and Deep Learning 邱锡鹏 P36-37

网康科技 NS-ASG 应用安全网关 SQL注入漏洞复现(CVE-2024-2022)

0x01 产品简介 网康科技的NS-ASG应用安全网关是一款软硬件一体化的产品,集成了SSL和IPSec,旨在保障业务访问的安全性,适配所有移动终端,提供多种链路均衡和选择技术,支持多种认证方式灵活组合,以及内置短信认证、LDAP令牌、USB KEY等多达13种认证方式。 0x02 漏洞概述 …

python+django+vue电影票订购系统dyvv4

电影院订票信息管理系统综合网络空间开发设计要求。目的是将电影院订票通过网络平台将传统管理方式转换为在网上操作,方便快捷、安全性高、交易规范做了保障,目标明确。电影院订票信息管理系统可以将功能划分为用户和管理员功能[10]。 语言:…

云原生基础知识:容器技术的历史

容器化的定义: 容器化是一种轻量级的虚拟化技术,将应用程序及其所有依赖项(包括运行时、系统工具、系统库等)打包到一个称为容器的单独单元中。容器提供了一种隔离的执行环境,使得应用程序可以在不同的环境中运行&…

list链表的创建,排序,插入, test ok

1. 链表的建立&#xff0c;打印 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stack> #include <iostream> #include <string.h> #include <string>using namespace std;struct node {int data;s…

一体化对账和结算平台的设计与实现

随着企业规模的扩大和业务的复杂化&#xff0c;对账和结算工作变得愈发繁琐和复杂。为了提高工作效率和降低错误率&#xff0c;许多企业开始寻求一体化对账和结算平台的解决方案。本文将探讨一体化对账和结算平台的设计原则和实施步骤&#xff0c;以及其在企业管理中的重要性。…

jdk安装,配置path系统变量

直接点击安装 不要包含空格&#xff0c;中文字符 3.找到刚刚的路径&#xff0c;看一下&#xff0c;有东西就说明安装对了 配置path winr输入sysdm.cpl点击确定 全部依次点击 确定 即可。 验证jdk是否安装成功 看java、javac是否可用看java、javac版本号是否无问题 win…