接口测试开发之:一篇搞懂微服务测试中的参数传递

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 接口测试开发之:一篇搞懂微服务测试中的参数传递

1、引言


在微服务最流行的年代,开发与测试是不可缺少的环节(这说的跟没说一样),

至于开发的环节,我就不说了(说的好像我会似的…);

来聊一聊测试环节中的接口测试(这是我擅长的)。


2、参数传递方式


2.1 定义及方式

接口测试目的:

验证微服务对客户端或服务暴露的接口是否能够正常工作。


主要方式:

构造并发送HTTP请求消息给微服务,然后接收并验证微服务回复的HTTP响应消息。


2.2 Path Parameter(路径参数)

1、在HTTP中,URL是一个很基本的概念,它表示的是服务端资源的路径,供客户端寻址和访问。

2、URL一般是常量字符串,但在有些情况下,URL中某些部分是可变的。

3、Path Parameter就是URL中可变的部分,其描述方式为{参数名}。


如:路径/blogs是不变的,而路径/blogs/{id}是可变的,其中可变的id就是路径参数。


4、Path Parameter一般用来指定集合中的某个具体元素。


如:服务端可能有许多blogs,而/blogs/{id}表示的就是某一篇具有特定id的blog。


5、Path Parameter的特点如下:


一个URL中可以包含多个路径参数。

在传递Path Parameter时,直接将{参数名}替换成具体的值,例如/blogs/123456。

Path Parameter是必填的,不是选填的。


2.3 Query Parameter(查询参数)


1、和Path Parameter相同的是,Query Parameter也是URL的一部分,通常用来对资源进行排序或过滤。


2、除此之外,它们有许多不同点:


Query Parameter以" ?"符号开始,并以键值对(参数名=参数值)的形式呈现,同时用&符号区分不同键值对。

如:blogs?date=20200305&category=work就包含了两个参数date和category,传递的值分别是20200305和work。


根据服务端要求的不同,Path Parameter可以赋值,也可以不赋值(为空),还可以完全不传递。

敲黑板:


Query Parameter和Path Parameter存在另一个共同点,那就是统一遵守URL编码。

URL编码也叫做百分号编码,是针对一些URL中无法直接包含或者有特殊意义的字符进行编码的方式,

如:空格被编码为%20,%被编码为%25。


2.4 Request Body参数

1、HTTP body自身有许多类型,其具体类型由HTTP head中的Content-Type参数决定。对于不同类型的HTTP body来说,其携带参数的方式也是不同的。


2、老规矩,直接上例子:


最经典的HTTP body类型是application/x-www-form-urlencoded,即URL编码的表单。

其传递参数的方式与查询参数十分相似,

如:date=20200305&category=work。


具体来说,虽然application/x-www-form-urlencoded类型的body也是采用URL编码方式,但是编码规则略有不同。

差别,如下:

在URL编码中,空格的默认编码是%20,而在application/x-www-form-urlencoded类型的body中,其编码既可以是%20,也可以是+。


3、这类表单参数不足之处,就是不能传递嵌套参数。在需要传递嵌套等复杂类型参数时,我们可以使用JSON类型的body。


4、在HTTP中,JSON是MIME媒体类型的一种,其Content-Type为application/json。

它可以传递各种复杂类型的参数,


如:{“date”: “20200305”, “category”: [“work”, “life”], “title”: {“subtitle”:“http”}}。


2.5 Request Headers参数


1、Path Parameter 和Query Parameter都是URL的一部分。在HTTP定义中,它们都位于HTTP请求消息的头部。


2、实际上:对于HTTP消息头部来说,除了可以包含Path Parameter 和Query Parameter外,还可以包含许多其他参数。

它们统一叫做Request Headers参数。


3、这些参数属于metadata,即数据的数据,是用来描述其他数据的数据。


如:Content-Length参数用来描述HTTP body的字节长度,Accept-Encoding参数用来描述客户端接受的文本编码方式。


目录
相关文章
|
22天前
|
消息中间件 API 持续交付
后端开发中的微服务架构实践####
【10月更文挑战第21天】 本文深入探讨了微服务架构在后端开发中的应用,从基本概念出发,详细阐述了微服务的核心优势、设计原则及关键技术。通过实际案例分析,揭示了微服务如何助力企业应对复杂业务需求,提升系统的可扩展性、灵活性与可靠性。同时,也指出了实施微服务过程中可能面临的挑战,并提供了相应的解决方案和最佳实践。 ####
27 3
|
14天前
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
14天前
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
36 3
|
13天前
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
29 1
|
14天前
|
消息中间件 运维 API
后端开发中的微服务架构实践####
本文深入探讨了微服务架构在后端开发中的应用,从其定义、优势到实际案例分析,全面解析了如何有效实施微服务以提升系统的可维护性、扩展性和灵活性。不同于传统摘要的概述性质,本摘要旨在激发读者对微服务架构深度探索的兴趣,通过提出问题而非直接给出答案的方式,引导读者深入
31 1
|
15天前
|
负载均衡 监控 API
后端开发中的微服务架构实践与挑战
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势和面临的挑战,并通过案例分析提出了相应的解决策略。微服务架构以其高度的可扩展性和灵活性,成为现代软件开发的重要趋势。然而,它同时也带来了服务间通信、数据一致性等问题。通过实际案例的剖析,本文旨在为开发者提供有效的微服务实施指导,以优化系统性能和用户体验。
|
18天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
47 1
|
19天前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
35 2
|
20天前
|
消息中间件 运维 开发者
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在后端开发中的应用,从其核心概念、设计原则到实际部署过程中面临的挑战进行了全面剖析。不同于传统的单体应用,微服务通过将复杂系统拆解为一系列小型、独立的服务,提高了系统的灵活性和可维护性。然而,这种架构的转变也伴随着服务间通信、数据一致性、部署复杂性等新问题。本文旨在为开发者提供一套应对这些挑战的策略,同时分享一些成功案例,以期促进微服务架构的有效实施。 ####
|
19天前
|
消息中间件 监控 API
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,分析了其优势、实施过程中的关键考虑因素及面临的挑战。不同于传统的单体应用,微服务通过拆分功能模块为独立服务,提升了系统的灵活性和可维护性。我们将从微服务的基本概念入手,逐步剖析其在真实场景下的应用案例,并讨论如何有效应对服务间通信、数据一致性等复杂问题,旨在为开发者提供一套实用的微服务落地指南。 ####
19 0