Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >接口测试中请求URL管理的正确姿势

接口测试中请求URL管理的正确姿势

原创
作者头像
用户9253502
发布于 2023-06-16 08:11:00
发布于 2023-06-16 08:11:00
5610
举报

一. 概述

      接口测试中,必不可少的第一个要素就是请求URL。一般来说,一个常规的请求URL分为以下四个部分: 请求协议,请求地址(域名:端口),请求路由(或资源路径),查询参数。如下图所示:

      而合格的接口测试用例,应当可以在多个环境去执行,那多个环境下一个接口的请求会哪些不同呢?

      首先,先说说哪些是不变的。请求协议必然是不变的,最多是否需要SSL验证,也就是http和https的不同,但一般来说对于代码发送请求,可以自适应,因此可以忽略,只有特定情况才需要做一些改变,如忽略证书校验等配置。

      其次,请求路由在多个环境下也不会改变,当然会有一些动态路由参数,但是这就与请求数据相关,通常都是动态关联。查询参数也是如此,查询参数名一般不会变,但是参数值一般是需要动态关联来生成。这二者都是通过请求数据的设计来解决,不与环境配置挂钩,与业务数据挂钩。

      那最后与环境挂钩的自然是请求地址,即ip加端口或者说是域名。不同的环境请求地址自然是不同的,如果我们希望接口测试用例在不同环境去执行,第一件事就要解决接口请求地址的动态获取。

二. 实现

      那如何实现接口请求地址的动态获取呢?如果所有接口测试用例只是测试单个服务的话,当然很简单,只需要每个环境下接口自动加上环境对应的请求地址即可,一些简单的测试平台或者测试框架也确实是这样实现的。

      但事实上肯定不会如此简单,现在的服务架构通常服务端都不会是单一的服务,尤其是微服务架构中,后端可能会有多个子服务。线上环境可能还会只有一个域名然后来代理所有的子服务,但测试环境一般都会存在多个请求地址。那将属于不同服务的接口动态匹配自己服务所属的域名或ip地址就相对麻烦一些。

      首先,常规做法是根据路由匹配。不同的微服务其路由参数前一两个参数必然是和业务挂钩的命名,因此我们可以参考nginx反向代理的配置方式,当遇到路由是以A开头的接口时,就自动将A对应的请求地址加在接口请求中,遇到BCD..则同理。这样做的优势是比较灵活的,但是有一种情况无法解决。

      在作者过往工作中,遇到这种情况,两个服务A和B,在环境1中,他们是部署在一起的,其请求路由前面也是一样,请求地址自然也是一样的。但是在环境2中,他们却是分开部署的,请求路由还是一样,但请求地址自然是不一样的。遇到这种情况,再套用路由匹配,针对环境2,就不是很好使了。虽然这种特殊情况是因为不规范导致的,但在现实中,这类情况并不少见。

      那如何解决这类问题呢,这时候我们就需要引入一个服务标识的概念,一个接口,无论在任何一个环境,他一定是属于系统架构中的某个子服务的。那么,如果一个被测系统有多个子服务,那我们就给每个子服务配置一个对应的标识,用来区分其服务的IP端口或域名,我称之为域名标识。而我们在维护接口文档时,对每个接口都加上所属服务的字段,即加上域名标识的记号,如此,不仅可以清晰知道被测接口所属的服务,而且不管不同环境怎么部署,通过标识一定可以找到接口对应的请求地址。

      当然,这种解决办法有一个缺点,当系统架构比较复杂时,如果有n个微服务,那就必须每个环境都配置n个域名标识对应的域名,即便在一些环境中这些标识对应的域名是一样的。

      因此,全局考虑,我们一般采用的请求URL管理的方式是路由匹配和标识匹配的结合。即域名标识字段我们在接口文档中还是正常维护,当遇到请求地址混乱的环境我们用域名标识来匹配,当遇到请求地址相对统一的环境我们用路由来匹配,如此就可以相对简单的完成多服务架构下的请求URL管理。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【日志服务CLS】一键开启腾讯电子签的高效运维之旅
电子签业务快速起量,服务日志的倍速增长使得我们在性能优化、问题定位时需投入大量的精力维护原有的ELK架构。
日志服务CLS小助手
2021/12/20
1K0
【日志服务CLS】免费体验Demo日志:一键开启,CLS全功能开箱即用
在一些测试场景,或者新用户试用学习的场景下,正常的数据因门槛过高、数据敏感性、没有数据源等原因无法接入和使用,造成用户无法获取接近真实使用场景的体验。
日志服务CLS小助手
2021/12/08
1.3K0
【CLS数据淘金第四期】网络流日志-云联网日志分析
云联网(Cloud Connect Network,CCN)云联网覆盖全球 20+ 地域,提供云上私有网络间(VPC)、VPC 与本地数据中心间(IDC)内网互联的服务,具备全网多点互联、路由自学习、链路选优及故障快速收敛等能力。
日志服务CLS小助手
2022/11/14
8470
【日志服务CLS】腾讯云日志服务CLS尝鲜
腾讯云产品有很多的分类,一般有一级大类和二级分类,其中,日志服务CLS是作为大类“存储”中的“数据处理与分析”类别下。如果我们想体验CLS服务,可以从下图的这个入口进入,地址:传送门。
liuzhen007
2021/05/16
7K2
【日志服务CLS】腾讯云日志服务CLS尝鲜
千万级日活量,斗鱼如何基于日志实现秒级监控告警?
「斗鱼」作为品类中的头部平台,斗鱼直播APP的日活用户量超千万量级,高峰时段有上万名主播同时在线开播。
日志服务CLS小助手
2022/02/23
1.7K0
业务上云使用腾讯云日志服务方案
日志服务(Cloud Log Service,下文简称CLS服务)是腾讯云提供的一站式日志数据解决方案,可以快速便捷的接入,享受日志采集、日志存储到日志内容搜索、统计分析等全方位稳定可靠的日志服务。下文讲解业务接入腾讯云日志服务方案。
覃春善
2020/11/04
5.3K1
【日志服务CLS】CLS+CLB整合初体验
很早之前就使用过腾讯云版本的日志服务cls。个人的应用场景主要是想采集clb负载均衡的日志。但是早些时候腾讯云的负载均衡clb只能挂载单个ssl证书,早期域名比较混乱,不想使用多个的clb服务。个人采用了自建的kubernetes服务。采用了腾讯云cls +tcp的方式代理应用,tls证书作为secret的方式交由kubernetes管理。这样就不能在clb层收集日志了(到现在也是这样仅支持http https方式收集日志,不能使用tcp方式收集)。因此仅仅是试用了一下就放弃了。
对你无可奈何
2021/04/12
2.2K1
「腾讯会议」:面对业务指数级增长如何高效运维?
在我们深入使用CLS 的过程中,CLS的性能和数据加工的简便性给我们留下了深刻印象。原来需要自建Kafka和Flink才能完成的需求现在CLS两分钟就可以搞定了!
日志服务CLS小助手
2022/01/23
1.4K1
谁说“安全”和“便捷”不可兼得?CLS 首发 DataSight 独立控制台
腾讯云日志服务(Cloud Log Service,CLS)提供从日志采集、存储、检索分析、数据加工、消费投递、可视化及告警等一站式 SaaS 服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
云存储
2023/08/03
2050
谁说“安全”和“便捷”不可兼得?CLS 首发 DataSight 独立控制台
10倍流量突增,智能门店行业引领者—「非码」如何灵活运维?
非码是行业领先的智能门店提供商,服务于行业内众多一线品牌,对服务稳定性、问题处理及时性都有极高的要求,日志是运维环节中重要的一环。
日志服务CLS小助手
2022/01/17
7940
CDN访问日志质量性能监控与运营统计分析最佳实践
CDN是非常重要的互联网基础设施,用户可以通过CDN,快速的访问网络中各种图片,视频等资源。在访问过程中,CDN会产生大量的日志数据,通过对CDN访问日志的分析,可以挖掘出大量有用的信息用于CDN质量和性能的分析,错误诊断,客户端分布, 用户行为分析。
日志服务CLS小助手
2021/11/19
1.2K0
【日志服务CLS】全新Grafana数据源,一键安装,功能升级
Grafana是一个开源的可视化工具,同时也是一个时序性统计和分析监控平台,提供了多种数据源的对接,拥有丰富的图表和美观的布局展示,功能齐全的仪表盘和图形编辑器。
日志服务CLS小助手
2022/04/01
9460
测试右移-后台服务监控告警实践
前段时间,公司上线了一个“大屏”项目,用于对接展示一些业务平台的数据。但是在上线后使用过程中,产品或业务经常反馈前台页面没有数据。出现这种情况后,开发人员会去排查问题,解决后再通知产品或业务人员解决修复情况。虽然研发每次都能在较短的时间内响应并解决问题,但运行一段时间后又会反复出现,也给用户造成了极其不好的使用体验。而本文则是基于“测试右移”思想,开展的一次后台服务监控告警的实践记录总结,整个实践过程可以分为:
大刚测试开发实战
2022/11/14
7360
测试右移-后台服务监控告警实践
分享一些很实用的系统监控告警工具
说到监控告警,没有企业开发经验的同学非常容易忽视它,甚至会有同学觉得没有必要,大不了出了 Bug 再修就是了。
程序员鱼皮
2024/08/01
3020
分享一些很实用的系统监控告警工具
日志服务Grafana可视化实践——从自建ELK到使用CLS
互联网时代的公司业务种类繁多,在这些业务每日工作的背后,是各类日志系统承担日志记录和检索排障的工作。 在业务上云的大趋势之下,越来越多的团队开始选择使用腾讯云日志服务CLS来解决他们的日志采集与存储、排障检索、数据分析、告警监控、可视化展示的系列诉求。很多公司团队已经开始将日志服务从自建的ELK转移到CLS,通过LogListener采集日志并上传,使用CLS的检索分析功能。
日志服务CLS小助手
2022/03/31
2.4K1
定心丸之没有监控的系统就是半废 No.157
上次写了一篇文章。对业务系统的监控 No.118 。讲的是我们在开发完成之后还需要做些什么事情,我们的系统有哪些方面是需要监控的,很多小伙伴对于怎么落地其实还有一定的疑惑,今天细细说一下。
大蕉
2019/08/27
4750
简单易用的监控告警系统 | HertzBeat 在 Rainbond 上的使用分享
在现有的监控告警体系中 Prometheus + AlertManger + Grafana 一直是主流,但对于中小团队或个人来说,这种体系显的较为复杂。而 HertzBeat 能让中小团队或个人很快速的搭建监控告警系统,并通过简单的配置实现应用、数据库、操作系统的监控与告警等。
Rainbond开源
2022/12/21
1.1K0
【日志服务CLS】容器服务TKE审计日志运维场景体验
以前,排查这些问题,对客户来说并不容易。生产环境中的Kubernetes集群通常是一个相当复杂的系统,底层是各种异构的主机、网络、存储等云基础设施,上层承载着大量的应用负载,中间运行着各种原生(例如:Scheduler、Kubelet)和第三方(例如:各种Operator)的组件,负责对基础设施和应用进行管理和调度; 此外不同角色的人员频繁地在集群上进行部署应用、添加节点等各种操作。
日志服务CLS小助手
2021/12/03
1.5K0
那些年听烂了的名词之“高可用“
本文想来和大家聊聊那些年我们听烂了的名词之 ‘高可用’ ,那么第一个问题就是: “如何构建一个高可用系统呢?”
大忽悠爱学习
2024/01/09
7740
那些年听烂了的名词之“高可用“
【腾讯云应用性能观测x日志服务】:链路日志关联,加速故障定位
顾自然 腾讯云监控产品经理,硕士毕业于墨尔本大学。目前主要负责腾讯云业务层监控相关产品策划工作,对应用监控和运维领域有深刻理解。 前言 随着微服务架构的逐渐流行,在熵增且庞杂的系统中准确的定位一个请求的完整生命周期,逐渐成为了研发同学面对的最大的痛点之一,以研发同学自测过程为例,开发同学往往希望在发起测试的 Http/RPC 请求后,能够通过一个简单的方式获取整个测试请求的上下文信息。这其中通常包括相关的上下游链路、各个服务内部请求的方法堆栈,以及链路上打印的日志等数据,对于指标-链路-日志的一体化监控的需
腾讯云可观测平台
2022/03/24
1.4K0
推荐阅读
相关推荐
【日志服务CLS】一键开启腾讯电子签的高效运维之旅
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档