微服务治理实践:自动化回归

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 本文是《微服务治理实践》系列篇的第六篇文章,为大家介绍微服务测试中的自动化回归。

本文是《微服务治理实践》系列篇的第六篇文章,为大家介绍微服务测试中的自动化回归:基于微服务契约信息快速编排被测服务、管理自动化测试用例。可视化用例编辑界面,丰富的预置检查点、内置变量,支持自定义变量、参数传递、持续自动化测试,帮助您高效管理、回归业务测试场景,帮助业务快速验证、快速交付。
第一篇:《微服务治理解密》
第二篇:《微服务治理实践:服务查询》
第三篇:《微服务治理实践:金丝雀发布》
第四篇:《微服务治理实践:服务契约》
第五篇:《微服务治理实践:如何降低微服务测试成本?》

该系列文章基于阿里云商业化产品 MSE 的微服务实践,如果您的团队具备较强的微服务治理+测试能力,那么希望我们在微服务治理+测试方面的实践和背后的思考,可以为您提供一些参考。

本期内容相关直播内容如下:

前言

当前微服务迭代周期短、版本多,服务需要具备独立测试和快速验证能力,支撑服务测试耗时缩短以及测试活动前移。面临多方面的挑战:
• 服务不具备独立验证能力
• 自动化用例开发效率很低
• 在高并发的使用场景下健壮性如何保证
• 如何及时发现现网服务出现异常
本文旨在讲述“自动化用例开发效率很低”的主要解决方案,在详细讲述微服务测试—自动化回归之前,先给大家讲一个场景。
1.png

在这个典型的企业微服务应用架构图中,Product Service应用提供查询商品列表和通过ID查询商品详情的功能,Business Service应用提供添加商品到购车的功能。如果想验证用户操作的从查询商品列表→通过ID查询商品详情→将商品添加至购物车这个业务场景,现在我们一般怎么做呢?
1、进入Product Service应用部署所在的机器(ECS)或者容器(Pod),通过 curl 命令调用查询商品列表,验证返回的商品列表是否不为空
2、把查询商品列表返回值中的ID拼接到curl命令的入参中,调用通过ID查询商品详情,验证详情中的字段是否符合预期
3、进入Business Service应用部署所在的机器(ECS)或者容器(Pod),把ID拼接到 curl 命令入参中调用添加该商品至购物车,验证添加是否成功
如果以上场景一次验证不通过,还要反复重复以上操作,至此我们可以总结出云上微服务测试的几点问题:
• 云上网络拓扑复杂
• 业务链路场景验证难
• 重复繁琐操作验证效率低

为什么我们需要自动化回归

微服务测试自动化回归,结合我们的研发实践和研发理念,测试用例免代码编写、一键选取被测服务、快速组装编排、低成本管理自动化测试用例。
2.png

MSE 自动化回归实践

前提条件:微服务应用已接入MSE
下面围绕前言中描述的场景如何使用微服务测试的自动化回归,从用例设计,用例生成,用例执行,打造简单、高效、专业的微服务测试能力,为微服务上线保驾护航。

用例设计

首先我们设计被测服务的加购物车业务场景,包括查询商品列表、查询商品详情、添加商品至购物车三步,设定每步的入参和预期。
3.png

用例生成

1、登录MSE控制台,在页面左上角选择地域;
2、左侧导航栏选择:微服务治理 -> 微服务测试 -> 自动化回归 -> 创建用例;
3、第1测试步骤查询商品列表,选择productservice应用 -> 选择Spring Cloud框架 -> 选择/products服务 -> (默认)选择GET方法;第1测试步骤无需入参,直接点击“访问一次”查看返回值,再点击“出参提取助手”获取需要校验的检查对象。
4.png

4、第1测试步骤在“断言(选填)”中粘贴刚选取的检查对象,检查条件选择不是空;在“出参提取(选填)”的出参提取表达式中粘贴需要提取的id字段,并定义出参名为id。
5.png
6.png

5、点击“添加下一步骤”增加第2测试步骤查询商品详情,选择productservice应用 -> 选择Spring Cloud框架 -> 选择/product/{id}服务 -> (默认)选择GET方法;Path切换自定义输入,将/product/{id}修改为/product/${id},即把第1测试步骤中提取的id传入第2步骤。
7.png

6、同时也对第2测试步骤设置断言和出参提取。
8.png
9.png

7、点击“添加下一步骤”增加第3测试步骤查询商品详情,选择cartservice应用 -> 选择Dubbo框架 -> 选择CartService服务 -> 选择addItemToCart方法;在基本信息中编辑入参数据,传入第1和第2测试步骤提取的入参,并在断言中设置预期返回值为true。
10.png

8、点击“保存配置”。至此已成功将用例设计的业务场景转化成一个俱备上下文传参、丰富断言的能力的自动化测试用例。
11.png

用例执行

触发立即执行测试用例,在执行历史查看验证业务的正确性和编排用例的正确性。
12.png

查看验证不通过测试步骤的具体失败信息,比如预期价格为900,实际为800,校验等于(数字)比较失败。
13.png

我们还有什么能力

本文介绍了微服务治理下微服务测试-自动化回归的能力,补齐了微服务生态测试的能力,但我们不止于此,我们即将夯实自动化回归能力,提供多样化的入参能力(系统函数、环境变量、集合变量、全局变量、参数化、参数容错自动生成等等),提供测试集管理能力(将测试用例分组、批量执行),丰富的执行能力(串行执行、并行执行、定时执行),甚至与服务测试、服务巡检、服务压测结合,将服务测试一键生成测试用例,将测试用例一键生成巡检任务、生成压测场景。
除了MSE(微服务引擎),微服务测试能力还将被EDAS、SAE等云产品集成。将微服务测试能力作为一个基础能力被更多云产品集成,另外,将跟更多微服务产品 ARMS (应用实时监控服务)、ACM(应用配置管理)、CSB(网关)形成联动,助力保障云上业务稳定性,让业务永远在线。

微服务测试交流群

如果您在微服务引擎MSE使用微服务测试过程中有任何疑问,欢迎您使用钉钉扫描下方的二维码或搜索钉钉群号 31180380 加入钉钉群进行反馈。
14.png

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
3月前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
|
15天前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
13天前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
2月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
131 17
|
2月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
96 9
|
3月前
|
运维 监控 持续交付
自动化运维在现代数据中心的应用与实践####
本文探讨了自动化运维技术在现代数据中心中的应用现状与实践案例,分析了其如何提升运维效率、降低成本并增强系统稳定性。通过具体实例,展示了自动化工具如Ansible、Puppet及Docker在环境配置、软件部署、故障恢复等方面的实际应用效果,为读者提供了一套可参考的实施框架。 ####
|
3月前
|
运维 监控 Devops
自动化运维实践:打造高效的DevOps流水线
在软件开发的快节奏中,自动化运维成为提升效率、确保质量的关键。本文将引导你理解自动化运维的价值,通过实际案例分享如何构建一个高效、可靠的DevOps流水线。我们将从持续集成(CI)开始,逐步深入到持续部署(CD),并展示代码示例来具体说明。准备好让你的运维工作飞跃式进步了吗?让我们开始吧!
|
3月前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
3月前
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
99 3
|
3月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
228 5