四时宝库

程序员的知识宝库

全程软件测试(八十四):Postman接口测试基础知识—读书笔记

Postman简介

一般简单的接口测试我们可以直接在浏览器里面进行调试,但是涉及到一些权限设置的就无法操作了,因此我们需要接口测试的相关工具;Postman 是一个接口测试和 http 请求的工具。

官网地址:https://www.getpostman.com

Postman 的优点:

  • 支持各种的请求类型: get、post、put、patch、delete 等
  • 支持在线存储数据,通过账号就可以进行迁移数据
  • 很方便的支持请求 header 和请求参数的设置
  • 支持不同的认证机制,包括 Basic Auth,Digest Auth,OAuth 1.0,OAuth 2.0 等
  • 响应数据是自动按照语法格式高亮的,包括 HTML,JSON 和 XML

下载安装

Postman有windows,Mac、Liunx以及Chrome插件版本。这里主要介绍Win平台版本的使用。

下载地址:https://www.getpostman.com/apps

官方文档:https://www.getpostman.com/docs/v6/

Postman Api文档:https://docs.postman-echo.com

Postman 入门

安装好之后启动程序,进入主界面。准备开始使用Postman

发送第一个请求

1.启动软件后在引导界面点击Request,给Request命名,然后创建文件夹并把该Request归属到该文件夹。

2.在地址栏输入postman-echo.com/get 然后点击 Send按钮,可以看到返回值。如下图所示:

Postman工作原理

如下图所示,当你在Postman中输入请求并单击Send按钮时,服务器将接收您的请求并返回Postman在接口中显示的响应。

Request编辑

在主界面左侧可以查看、保存、编辑Request。

发送不同类型HTTP请求

GET

HTTP GET请求方法用于从服务器检索数据。数据由唯一的URI(统一资源标识符)标识。

GET请求可以使用“Query String Parameters”将参数传递给服务器。

例如,在下面的请求中:

https://postman-echo.com/get?param1=51zxw?m2=66666

请求说明:

param1和param2表示发送的参数。
?后面接参数
&连接多个参数

参数编辑

点击Params按钮,Postman 可以自动帮我们解析出对应参数。

  1. 如果想要暂时不传参数,可以方便的通过不勾选的方式去实现
  2. 如果想要批量的编辑参数,可以点击右上角的Bulk Edit,去实现批量编辑

响应数据

在主界面下方一栏菜单为响应菜单栏,可以查看响应内容,Cookie、Headers、响应状态码等信息。

返回值:

{
    "args": {
         "param1": "51zxw",
         "param2": "66666"
    },
    "headers": {
        "host": "postman-echo.com",
        "accept": "*/*",
        "accept-encoding": "gzip, deflate",
        "cache-control": "no-cache",
        "cookie": "sails.sid=s%3AybUTdbjW9tK6kEGK3wv5nqjDrGI_nWri.ZbeeTsLGoBJgWngTuBhBUKo9upgIWer2CRdxWttbV1U",
        "postman-token": "f19b9f19-f0af-45ff-8dfd-0d1c75c1bbad",
        "user-agent": "PostmanRuntime/7.1.5",
        "x-forwarded-port": "443",
        "x-forwarded-proto": "https"
    },
    "url": "https://postman-echo.com/get?username=51zxw&password=66666"
}

POST

HTTP POST请求方法旨在将数据传输到服务器,返回的数据取决于服务器的实现。

POST请求可以使用Query String Parameters以及body将参数传递给服务器。

案例1

在下面的请求中,使用Query String Parameters传递参数。

https://postman-echo.com/post?param=51zxw

返回值

{
    "args": {
        "param": "51zxw"
    },
    "data": {},
    "files": {},
    "form": {},
    "headers": {
        "host": "postman-echo.com",
        "content-length": "0",
        "accept": "*/*",
        "accept-encoding": "gzip, deflate",
        "cache-control": "no-cache",
        "content-type": "",
        "cookie": "sails.sid=s%3A4L3j09wwnJ9JguJC-raHVYeuyVVEVHGW.za7nk%2BO4gj9Nh%2FJDLzSZczT4k%2BROeV0yTq8GJ5Y9YZo",
        "postman-token": "b34668bf-3850-4573-b196-bab2bd7db705",
        "user-agent": "PostmanRuntime/7.1.5",
        "x-forwarded-port": "443",
        "x-forwarded-proto": "https"
    },
    "json": null,
    "url": "https://postman-echo.com/post?param=51zxw"
}

案例2

发送一个Request,其中body为application/x-www-form-urlencoded类型,参数分别为param1=zxw和param2=888

请求URL如下:

https://postman-echo.com/post

Postman Body数据类型说明:

  1. form-data multipart/form-data是Web表单用于传输数据的默认编码。这模拟了在网站上填写表单并提交它。表单数据编辑器允许我们为数据设置键-值对。我们也可以为文件设置一个键,文件本身作为值进行设置。
  2. x-www-form-urlencoded该编码与URL参数中使用的编码相同。我们只需输入键-值对,Postman会正确编码键和值。请注意,我们无法通过此编码模式上传文件。表单数据和urlencoded之间可能存在一些差异,因此请务必首先检查API的编码实现,确定是否可以使用这种方式发送请求。
  3. raw 请求可以包含任何内容。除了替换环境变量之外,Postman不触碰在编辑器中输入的字符串。无论你在编辑区输入什么内容,都会随请求一起发送到服务器。编辑器允许我们设置格式类型以及使用原始主体发送的正确请求头。我们也可以手动设置Content-Type标题,这将覆盖Postman定义的设置。
  4. binary 二进制数据可让我们发送Postman中无法输入的内容,例如图像,音频或视频文件。

返回值如下:

{
    "args": {},
    "data": "",
    "files": {},
    "form": {
        "param1": "zxw",
        "param2": "888"
    },
    "headers": {
        "host": "postman-echo.com",
        "content-length": "21",
        "accept": "*/*",
        "accept-encoding": "gzip, deflate",
        "cache-control": "no-cache",
        "content-type": "application/x-www-form-urlencoded",
        "cookie": "sails.sid=s%3A69wx4iZKJDDB1qVsZUnB1RpcwTU-fN_9.pr%2FiwjJzIFDiC9H7dFnINqMwkenjTJnwF8thN15KBzw",
        "postman-token": "09d8e786-834a-42b9-bbe0-3e6886ef7b3b",
        "user-agent": "PostmanRuntime/7.1.5",
        "x-forwarded-port": "443",
        "x-forwarded-proto": "https"
    },
    "json": {
        "param1": "zxw",
        "param2": "888"
    },
    "url": "https://postman-echo.com/post"
}

PUT

HTTP PUT请求主要是从客户端向服务器传送的数据取代指定的文档的内容。

PUT请求可以使用Query String Parameters以及body请求体将参数传递给服务器。

案例:

发送PUT请求,并传递字符参数“hello 51zxw”

https://postman-echo.com/put

返回值

{
    "args": {},
    "data": "",
    "files": {},
    "form": {
        "hello 51zxw": ""
    },
    "headers": {
        "host": "postman-echo.com",
        "content-length": "11",
        "accept": "*/*",
        "accept-encoding": "gzip, deflate",
        "cache-control": "no-cache",
        "content-type": "application/x-www-form-urlencoded",
        "cookie": "sails.sid=s%3A-kzZXqiAKlk9oDgVADnLyqAEf7f6scDV.dhZZMReTg2y9KuTE%2Fxb9O2qGKnaUxD3O%2B3J4PTTXZms",
        "postman-token": "1338c8b1-b502-45f6-9400-7be048d7b2ea",
        "user-agent": "PostmanRuntime/7.1.5",
        "x-forwarded-port": "443",
        "x-forwarded-proto": "https"
    },
    "json": {
        "hello 51zxw": ""
    },
    "url": "https://postman-echo.com/put"
}

DELETE

HTTP DELETE方法用于删除服务器上的资源,DELETE请求可以使用Query String Parameters以及body请求体将参数传递给服务器。

delete请求:

https://postman-echo.com/delete

返回值

{
    "args": {},
    "data": {},
    "files": {},
    "form": {},
    "headers": {
        "host": "postman-echo.com",
        "accept": "*/*",
        "accept-encoding": "gzip, deflate",
        "cache-control": "no-cache",
        "cookie": "sails.sid=s%3A-kzZXqiAKlk9oDgVADnLyqAEf7f6scDV.dhZZMReTg2y9KuTE%2Fxb9O2qGKnaUxD3O%2B3J4PTTXZms",
        "postman-token": "065cb8c4-cea2-4e24-9be0-573d58b4da2c",
        "user-agent": "PostmanRuntime/7.1.5",
        "x-forwarded-port": "443",
        "x-forwarded-proto": "https"
    },
    "json": null,
    "url": "https://postman-echo.com/delete"
}

Request Header

Request Header(请求头)用来说明服务器要使用的附加信息,比较重要的信息有 Cookie、Referer、User-Agent 等。在Postman中可以在请求下方的Headers栏目来设置,如下如图所示:

Response Header

Response Header(响应头)其中包含了服务器对请求的应答信息,如 Content-Type、Server、Set-Cookie 等,在Postman主界面下方Headers或者Postman Console界面都可以查看Response Header信息。

Tips:通过Postman Console可以看到每次请求的Request Header详细信息。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言