前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从测试密闭性聊聊Mock

从测试密闭性聊聊Mock

原创
作者头像
优测云服务平台
发布2023-08-01 17:47:36
1990
发布2023-08-01 17:47:36
举报
文章被收录于专栏:优测Utest优测Utest

一、什么是密闭服务?

Google 测试团队的博客中,有一篇博文介绍的正是《Hermetic Servers(密闭服务)》。如下图所示,当被测试系统依赖了 Another Backend,这种依赖即产生了 “不可控” 因素。

怎么定义密闭服务呢?

如果可以在一台没有网络的机器上启动整个服务并且服务可以按照预期的工作,那么这就称为是一个密闭服务。 但是,图中关系中 Another Backend 服务会依赖其他的服务、中间件... ,最终会形成一个庞大的调用网络,如何解决这个问题呢?答案是:通过 Mock Server。

二、为什么需要 API Moke?

2.1 服务规模庞大且复杂 当前在各研发团队中普遍存在的一个问题是服务依赖和接口数量规模越来越大。造成这样一个现状的原因有三个: ● 业务场景复杂度越来越高,如:双十一各大电商平台的玩法越来越复杂。 ● 大单体服务 ---> 微服务的演进,服务模块之间的调用变成了微服务之间调用。 ● 云原生基础设施使得创建服务变得很简单,研发团队缺少 “克制”。 2.2 挑战&解决办法 一个集群几十个微服务非常普遍,这使得上述中的 “密闭服务” 越来约困难也给开发/测试工作带来很多挑战。这种挑战主要体现在以下几个方面: ● Web 前端依赖复杂联调困难 ● 后台开发无法在本地启动服务,无法直接本地开发调试 ● 自动化测试活动开展困难 通过 API Mock 帮助构建密闭服务解决以上三个挑战: ● 通过 Mock 解决联调困难问题

前端同事的应用访问 Mock Server,通过合理配置访问 Mock 规则 或者透传到后台服务。

● 自动化测试困难

自动化测试开展困难的,通常主要原因是依赖服务是第三方服务不可控,如:第三方支付接口... ,通过构建 Mock Server 来构建测试密闭环境,解决此问题。

三、实践

3.1 通过接口管理快速导入 API 文档 规范化的 API 管理能力是构建 Mock 的基础,笔者所在团队 HTTP 接口使用 Swagger 统一管理,优测接口管理提供完善的接口托管能力(见下图)。

通过上传导入的形式可以对接口进行统一的管理和版本的管控。同时,接口管理的能力支持对接 git 代码仓库和流水线,实现服务和接口管理自动化同步。

同时,优测接口管理支持 RPC 协议托管,包括:PB、tars(腾讯内部 IDL)、Dubbo 等协议接口文档托管能力。

3.2 接口文档基础上构建 Mock 能力

通过构建 Mock 能力可以解决 2.2 中的挑战问题。

四、总结

云原生、微服务为服务研发及运维工作带来了很多便捷,同时也带来了诸多挑战。本文从密闭服务概念开始讲起,通过构建 Mock Server 能力解决服务之间依赖问题,提升前端和后台开发者效率。通过优测接口管理和 Mock 的能力构建基础 Mock 能力解决研发、测试过程中环境的 “不可控” 问题。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是密闭服务?
  • 二、为什么需要 API Moke?
  • 三、实践
  • 四、总结
相关产品与服务
云 API
云 API 是腾讯云开放生态的基石。通过云 API,只需少量的代码即可快速操作云产品;在熟练的情况下,使用云 API 完成一些频繁调用的功能可以极大提高效率;除此之外,通过 API 可以组合功能,实现更高级的功能,易于自动化, 易于远程调用, 兼容性强,对系统要求低。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档