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

本文涉及的产品
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: 接口测试开发之:一篇搞懂微服务测试中的参数传递

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参数用来描述客户端接受的文本编码方式。


目录
相关文章
|
2月前
|
测试技术 微服务
使用Istio实现流量镜像:提升微服务测试的利器
使用Istio实现流量镜像:提升微服务测试的利器
209 99
|
7月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
273 5
|
2月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
108 0
|
7月前
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
|
7月前
|
机器学习/深度学习 人工智能 并行计算
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
|
4月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
267 0
|
5月前
|
传感器 人工智能 JavaScript
鸿蒙开发:DevEcoTesting中的稳定性测试
DevEcoTesting主要的目的也是用于软件的测试,可以让开发者无需复杂的配置,即可一键执行测试任务,同时提供了测试报告和分析,无论是对于开发者还是测试同学来说,都是一个非常方便的工具。
218 3
鸿蒙开发:DevEcoTesting中的稳定性测试
|
4月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
4月前
|
运维 jenkins 测试技术
"还在苦等开发部署环境?3步教你用Jenkins拿回测试主动权"
测试工程师最头疼的问题是什么?依赖开发部署环境! 开发延期→测试时间被压缩→紧急上线后BUG频出→测试背锅。传统流程中,测试被动等待部署,效率低下。而Jenkins自动化部署让测试人员自主搭建环境,实现: ✅ 随时触发测试,不再苦等开发 ✅ 部署效率提升10倍,抢回测试时间 ✅ 改善团队协作,减少互相甩锅 学习Jenkins部署能力,成为高效测试工程师,告别被动等待!
|
5月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
976 23

热门文章

最新文章