微服务接口测试中的参数传递

news2024/11/27 1:32:41

这是一个微服务蓬勃发展的时代。在微服务测试中,最典型的一种场景就是接口测试,其目标是验证微服务对客户端或其他微服务暴露的接口是否能够正常工作。对于最常见的基于Restful风格的微服务来说,其对外暴露的接口就是HTTP端点(Endpoint)。

  这种情况下,完成微服务接口测试的主要方式就是构造并发送HTTP请求消息给微服务,然后接收并验证微服务回复的HTTP响应消息。在这个过程中,最基础的工作是正确构造HTTP请求消息。

  一条HTTP请求消息中,包含各种各样的参数。了解HTTP请求参数的类型,对于我们正确构造HTTP请求消息十分重要。接下来,我们就一起看看HTTP请求消息中可能包含哪些类型的参数,以及它们各自的特点。

  路径参数(path parameter)。在HTTP中,URL是一个很基本的概念,它表示的是服务端资源的路径,供客户端寻址和访问。URL一般是常量字符串,但在有些情况下,URL中某些部分是可变的。路径参数就是URL中可变的部分,其描述方式为{参数名}。例如,路径/blogs是不变的,而路径/blogs/{id}是可变的,其中可变的id就是路径参数。

  路径参数一般用来指定集合中的某个具体元素。例如,服务端可能有许多blogs,而/blogs/{id}表示的就是某一篇具有特定id的blog。路径参数的特点如下:

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

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

  路径参数是必填的,不是选填的。

  查询参数(query parameter)。和路径参数相同的是,查询参数也是URL的一部分,通常用来对资源进行排序或过滤。除此之外,它们有许多不同点:

  查询参数以?符号开始,并以键值对(参数名=参数值)的形式呈现,同时用&符号区分不同键值对。例如/blogs?date=20200305&category=work就包含了两个参数date和category,传递的值分别是20200305和work。

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

  查询参数和路径参数存在另一个共同点,那就是统一遵守URL编码。URL编码也叫做百分号编码,是针对一些URL中无法直接包含或者有特殊意义的字符进行编码的方式,例如空格被编码为%20,%被编码为%25。

  Request Headers参数。路径参数和查询参数都是URL的一部分。在HTTP定义中,它们都位于HTTP请求消息的头部。实际上,对于HTTP消息头部来说,除了可以包含路径参数和查询参数外,还可以包含许多其他参数。它们统一叫做Request Headers参数。

  这些参数属于metadata,即数据的数据,是用来描述其他数据的数据。例如Content-Length参数用来描述HTTP body的字节长度,Accept-Encoding参数用来描述客户端接受的文本编码方式。

  Request Body参数。除了HTTP消息头部能够携带参数之外,HTTP消息体(body)也可以包含参数。HTTP body自身有许多类型,其具体类型由HTTP head中的Content-Type参数决定。对于不同类型的HTTP body来说,其携带参数的方式也是不同的。举例如下。

  最经典的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,也可以是+。

  这类表单参数最大的一个不足,就是不能传递嵌套参数。在需要传递嵌套等复杂类型参数时,我们可以使用JSON类型的body。在HTTP中,JSON是MIME媒体类型的一种,其Content-Type为application/json。它可以传递各种复杂类型的参数,例如:{"date": "20200305", "category": ["work", "life"], "title": {"subtitle":"http"}}。

  当然,HTTP body类型远远不止这两种,传递参数的方式也还有更多,例如XML参数,文件上传参数,二进制参数等。

  以上介绍了几种主要的HTTP请求参数类型和传递方式。需要注意的是,它们只是理论。在工程实际中,如何运用这些参数呢?这时候,需要结合工具(例如swagger,postman,Python requests)的特点,具体情况具体分析。

 感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM的餐饮掌上设备点餐系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

纸白银可以双向交易吗?

纸白银是指以合约形式进行交易的白银,投资者可以通过期货市场进行买入和卖出操作。因此,纸白银是可以双向交易的。投资者既可以选择做多(买入)纸白银合约,也可以选择做空(卖出)纸白银合约&#…

Qt中正确的设置窗体的背景图片的几种方式

Qt中正确的设置窗体的背景图片的几种方式 QLabel加载图片方式之一Chapter1 Qt中正确的设置窗体的背景图片的几种方式一、利用styleSheet设置窗体的背景图片 Chapter2 Qt的主窗口背景设置方法一:最简单的方式是通过ui界面来设置,例如设置背景图片方法二 &…

默认路由配置

默认路由: 在末节路由器上使用。(末节路由器是前往其他网络只有一条路可以走的路由器) 默认路由被称为最后的关卡,也就是静态路由不可用并且动态路由也不可用,最后就会选择默认路由。有时在末节路由器上写静态路由时…

重磅发布|美创科技新一代 数据安全管理平台(DSM Cloud)全新升级

重磅发布 新一代 数据安全管理平台(DSM Cloud) 美创科技新一代 数据安全管理平台(简称:DSM Cloud)全新升级,正式发布。 在业务上云飞速发展过程中,快速应对数据激增,同时有效保障数…

基于LDA主题+协同过滤+矩阵分解算法的智能电影推荐系统——机器学习算法应用(含python、JavaScript工程源码)+MovieLens数据集(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Pycharm 环境数据库 相关其它博客工程源代码下载其它资料下载 前言 前段时间,博主分享过关于一篇使用协同过滤算法进行智能电影推荐系统的博文《基于TensorFlowCNN协同过滤算法的智能电影推荐系统——…

win10提示mfc100u.dll丢失的解决方法,快速解决dll问题

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“mfc100u.dll丢失”。那么,mfc100u.dll是什么?mfc100u.dll是Microsoft Visual C Redistributable文件之一,它包含了用于MFC (Microsoft Foundation Class…

爆火的Swin Transformer到底是什么

文章目录 一、名称解读二、ViT回顾三、Swin Transformer vs ViT四、Swin Transformer结构4.1 Patch Merging模块4.2 相对位置编码4.3 shifted window 五 总结 爆火的Swin Transformer究竟是个啥?今天本篇文章系统讲解下Swin t 结构、优点、位置编码、移位窗口shifte…

材料高温环境电磁参数测试系统 (1GHz-500GHz)

材料高温环境 电磁参数测试系统 (1GHz-500GHz) 材料高温环境电磁参数测试系统测试频率范围可达1GHz~500GHz,最高测试温度达1200℃,可实现高温环境下材料复介电常数、复磁导率、反射率等参数测试。系统由矢量网络分析…

分享四款简单实用的视频下载工具

今天来和大家分享几个视频下载工具。毕竟,在这个自媒体时代,非常多的小伙伴有下载视频的需求,话不多说,直接上干货! 1.Downni 这是一个在线视频下载网站。它支持几乎所有的主流视频平台;然后它还支持多种分…

UNI-APP中如何通过配置访问代理,解决跨域问题

主要思路 通过配置manifest.json文件中的h5选项来完成设置h5是一级属性。 修改manifest.json文件 以下两种都能满足要求 "h5" : {"devServer" : {"https" : false,"port" : 8081,//见备注1"disableHostCheck" : true,&q…

四旋翼无人机PID控制Simulink仿真

底部有完整文件地址 整体采用内外环方式对四旋翼的位置和姿态进行控制 Simulink整体模型图 Matlab版本:R2022a 姿态控制效果 滚转角 ϕ \phi ϕ: 俯仰角 θ \theta

**LEEDCODE 498对角线遍历

class Solution { public:vector<int> findDiagonalOrder(vector<vector<int>>& mat) {int n mat.size();int m mat[0].size();std::vector<int> a;for(int i 0; i < mn-1; i){// 偶数 下往上if(i % 2 0){// 起点 x min(i, n - 1) …

材质之选:找到适合你的地毯

当谈到家居装饰时&#xff0c;地毯是一个经常被忽视的重要元素。但事实上&#xff0c;地毯在家居中扮演了至关重要的角色&#xff0c;不仅可以增加舒适感&#xff0c;还可以改善室内的整体氛围。在这篇文章中&#xff0c;我们将探讨地毯的选择、尺寸、形状和材质&#xff0c;以…

Domino中和邮件安全有关的SPF、DKIM介绍

大家好&#xff0c;才是真的好。 首先&#xff0c;偷偷告诉大家一个非常好的消息&#xff0c;2023年12月7号上午10点&#xff08;美国东部时间&#xff09;&#xff0c;HCL将正式发布Domino 14.0和Sametime 12.0.2版本&#xff01; 发布时间居然能精确到几点钟&#xff0c;很…

同城信息发布小程序制作

信息发布系统的应用较为广泛&#xff0c;如同城信息系统、企业获取各业线索、内部交流、论坛社区小程序、校园交流平台等&#xff0c;如果运营得到往往能起到不错的效果。 它可以连接供需双方&#xff0c;用户获取和发布需求信息、参与互动交流&#xff0c;高效打造有竞争力的…

去库存化进入尾声,内存模组厂加速复苏 | 百能云芯

近期&#xff0c;半导体市场开始传递复苏信号&#xff0c;国内大型半导体制造商纷纷提到明年将迎来多款消费性电子产品的需求回升&#xff0c;这表明半导体设计库存的去化即将进入尾声。另一个重要的迹象是内存市场&#xff0c;自去年以来&#xff0c;国外许多记忆体制造商面临…

数据库-引擎

存储引擎&#xff1a; mysql当中数据用各中不同的技术存储在文件中&#xff0c;每一种技术都使用的是不同的存储机制&#xff0c;索引技巧 索引水平&#xff0c;以及最终提供的不同功能和能力&#xff0c;这些就是我们说的引擎。 功能&#xff1a; mysql将数据存储在文件系统…

vscode设置保存后,自动格式化代码

第一步&#xff1a;打开setting.json文件 第二步&#xff1a;在setting.json中加入以下代码 "editor.formatOnType": true, "editor.formatOnSave": true, "editor.formatOnPaste": true

文心一言 VS 讯飞星火 VS chatgpt (127)-- 算法导论11.2 2题

二、用go语言&#xff0c;位向量(bit vector)是一个仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少得多。请说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合。字典操作的运行时间应为 O(1)。 文心一言&#xff0c;代码正常运行&#x…