用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 可以自动帮我们解析出对应参数。
- 如果想要暂时不传参数,可以方便的通过不勾选的方式去实现
- 如果想要批量的编辑参数,可以点击右上角的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: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 Body数据类型说明:
- form-data multipart/form-data是Web表单用于传输数据的默认编码。这模拟了在网站上填写表单并提交它。表单数据编辑器允许我们为数据设置键-值对。我们也可以为文件设置一个键,文件本身作为值进行设置。
- x-www-form-urlencoded该编码与URL参数中使用的编码相同。我们只需输入键-值对,Postman会正确编码键和值。请注意,我们无法通过此编码模式上传文件。表单数据和urlencoded之间可能存在一些差异,因此请务必首先检查API的编码实现,确定是否可以使用这种方式发送请求。
- raw 请求可以包含任何内容。除了替换环境变量之外,Postman不触碰在编辑器中输入的字符串。无论你在编辑区输入什么内容,都会随请求一起发送到服务器。编辑器允许我们设置格式类型以及使用原始主体发送的正确请求头。我们也可以手动设置Content-Type标题,这将覆盖Postman定义的设置。
- 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”
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栏目来设置,如下如图所示:
Response Header
Response Header(响应头)其中包含了服务器对请求的应答信息,如 Content-Type、Server、Set-Cookie 等,在Postman主界面下方Headers或者Postman Console界面都可以查看Response Header信息。
Tips:通过Postman Console可以看到每次请求的Request Header详细信息。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com