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

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

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


目录
相关文章
|
7月前
|
测试技术 微服务
使用Istio实现流量镜像:提升微服务测试的利器
使用Istio实现流量镜像:提升微服务测试的利器
307 99
|
12月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
391 5
|
12月前
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
|
9月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
467 1
|
10月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1366 23
|
11月前
|
人工智能 数据可视化 JavaScript
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
Juggle是国内首个开源的微服务编排框架,专注于解决企业微服务进程中接口重复开发、系统对接复杂等问题。它提供零代码、低代码和AI增强功能,通过可视化拖拽快速组装简单API为复杂接口,支持多协议、多语言脚本和流程多版本管理。相比国外框架如Conductor,Juggle更贴合国内需求,具备高效开发、企业级可靠性及信创适配等优势,助力企业实现敏捷创新与数字化转型。
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
|
12月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1807 24
|
10月前
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
1046 0
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
567 2
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。