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

参数传递

  • 1、引言
  • 2、参数传递方式
    • 2.1 定义及方式
    • 2.2 Path Parameter(路径参数)
    • 2.3 Query Parameter(查询参数)
    • 2.4 Request Body参数
    • 2.5 Request Headers参数

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就包含了两个参数datecategory,传递的值分别是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参数用来描述客户端接受的文本编码方式。

你可能感兴趣的:(接口自动化(实战为主),测试开发领域必会知识,接口,微服务,软件测试)