用postman做接口测试举例(全程软件测试八十四)(1)

Postman简介

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

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

Postman 的优点:

下载安装

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归属到该文件夹。

用postman做接口测试举例(全程软件测试八十四)(2)

用postman做接口测试举例(全程软件测试八十四)(3)

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

用postman做接口测试举例(全程软件测试八十四)(4)

Postman工作原理

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

用postman做接口测试举例(全程软件测试八十四)(5)

Request编辑

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

发送不同类型HTTP请求

GET

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

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

例如,在下面的请求中:

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

用postman做接口测试举例(全程软件测试八十四)(6)

请求说明:

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

参数编辑

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

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

用postman做接口测试举例(全程软件测试八十四)(7)

响应数据

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

用postman做接口测试举例(全程软件测试八十四)(8)

返回值:

{ "args": { "param1": "51zxw", "param2": "66666" }, "headers": { "host": "postman-echo.com", "accept": "*/*", "accept-encoding": "gzip, deflate", "cache-control": "no-cache", "cookie": "sails.sid=s:ybUTdbjW9tK6kEGK3wv5nqjDrGI_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:4L3j09wwnJ9JguJC-raHVYeuyVVEVHGW.za7nk+O4gj9Nh/JDLzSZczT4k+ROeV0yTq8GJ5Y9YZo", "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做接口测试举例(全程软件测试八十四)(9)

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:69wx4iZKJDDB1qVsZUnB1RpcwTU-fN_9.pr/iwjJzIFDiC9H7dFnINqMwkenjTJnwF8thN15KBzw", "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”

用postman做接口测试举例(全程软件测试八十四)(10)

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:-kzZXqiAKlk9oDgVADnLyqAEf7f6scDV.dhZZMReTg2y9KuTE/xb9O2qGKnaUxD3O+3J4PTTXZms", "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:-kzZXqiAKlk9oDgVADnLyqAEf7f6scDV.dhZZMReTg2y9KuTE/xb9O2qGKnaUxD3O+3J4PTTXZms", "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栏目来设置,如下如图所示:

用postman做接口测试举例(全程软件测试八十四)(11)

Response Header

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

用postman做接口测试举例(全程软件测试八十四)(12)

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

,