...

Postman使用简介

接口测试工具-目录

Postman简介

Postman是一款简单方便的接口调试工具,便于分享和协作。具有接口调试、请求集管理、环境配置、参数化、断言、批量执行、请求录制、Mock Server,、接口文档、接口监控等功能。

Postman主界面

Postman主界面分为菜单栏、工具栏、请求管理区、环境管理区、请求设计区及状态栏等主要部分组成,如图2.13所示。

图2.13  Postman主界面

菜单栏

Postman菜单栏由File(文件)、Edit(编辑)、View(显示)和Help(帮助)4个主菜单组成。

工具栏

Postman的工具栏中是一些常用的工具按钮如新疆、导入、运行器等等。详细按钮及解释参考表2.4。

表2.4  Postman工具栏按钮功能

请求管理区

请求管理区位于Postman主体的左侧,用于查看保存的请求列表或请求历史。主要分为Collections接口集和History请求历史两种视图。
接口集,相当于一个接口项目或测试计划,接口集中可以建立无限极子文件夹,用于对接口进行分组管理。请求历史记录视图中可以查询到之前的请求记录。

环境管理区

环境管理区分位于Postman主体右侧请求设计区右上角。由一个环境选择下拉框,一个眼睛(预览)图标和一个环境设置图标组成。环境选择下拉框中可以切换不同的环境。环境预览按钮可以快速雨来环境中的所有变量设置。环境设置中可以添加修改环境变量以及全局变量。

注:什么是环境?

环境是一套配置,包含许多环境变量。在接口测试中,根据部署在不同的服务器上,服务器地址有可能不同,而同一个接口,接口地址是不变的。为了测试部署在不同服务器上的同一套接口,我们可以建立不同的环境,不同环境中host变量使用不同的地址。

请求设计区

请求设计区位于Postman右侧,是Postman的核心功能区。请求设计区上半部分为请求区,下半部分为响应区。可以通过上方的Tab选项卡边上的+好,新建多个请求面板,如图2.14所示。

图2.14  Postman请求设计区

请求区主要由请求地址行和请求数据区组成。
请求地址行中可以选择请求方法(GET/POST/...),填写请求地址,发送请求和保存请求到测试集。
请求数据区:分为授权,请求头,请求数据,请求发送前执行的脚本(用于准备数据),请求结束后执行的脚本(用于断言)。

请求设计区分为以下5个面板。

  • Params:URL参数。
  • Authorization:如果接口需要授权,可以在该页面设置授权方式(type)和授权信息。
  • Header:请求头,可以设置请求类型(Content-Type)和Cookie。
  • Body:请求数据。
  • Pre-request Script:请求前脚本,JavaScript语法,用于在发送请求前生成一些动态数据或做一些处理
  • Tests:请求后脚本,JavaScript语法,用于请求返回后做一些处理或断言结果

其中Body下主要包含以下4中格式。

  • form-data:混合表单,支持上传文件
  • x-www-form-urlencoded:文本表单
  • raw:原始格式,支持JSON/XML格式(后面可选择)
  • binary:二进制格式,用于发送二进制数据流

选择不同的格式,可以发送不同类型的请求数据。
响应区用于展示发送完请求,服务端的响应数据及状态,由Body响应体、Headers响应头、Cookie响应Cookies、Test Results测试结果4部分组成。
响应内容中可以以Pretty(美化格式)、Raw(原始格式)、Preview(HTML预览格式)等方式查看响应数据。测试结果用于显示请求中Tests中设置的断言的测试结果。

发送请求

发送GET请求

发送GET请求非常简单,请求方法使用默认GET,在地址栏中填入接口地址,点击发送即可,如图2.15所示。

2.15  Postman发送GET请求

Postman发送GET请求

请求URL参数可以直接写在URL中,也可以通过Params选项卡中的表格填写,参数会自动同步到URL中。

注:如果请求需要登录,可以先在Postman其他Tab页的请求中发送登录接口进行登录(Postman会保存登录的Cookies),然后再发送该GET请求。或者抓取登录后的Cookies,填写到该GET请求的Header中。

发送表单格式POST请求

表单格式的非常常见的一种网页表单提交的格式。对应的内容类型为application/x-www-form-urlencoded。参数数据经过URL编码后发送。
在Postman中发送表单格式的数据,首先要在地址行中选择POST方法,填写接口地址,选择下方的Body(请求体)子选项卡,选择x-www-form-urlencoded格式,在表格中填入参数数据,点击Send发送即可。如图2.17所示。

图2.17  Postman发送表单格式POST请求

注:在选择x-www-form-urlencoded格式后,Postman会自动在请求头中添加对应的内容类型项,Content-Type: application/x-www-form-urlencoded。

发送JSON格式POST请求

JSON格式属于raw原始格式(即不经过编码原样发送)中的一种。发送JSON格式请求,首先选择POST请求方法,填写接口地址,选择Body请求体,选择raw,在右侧的下拉选项中选择JSON(application/json)。在下方输入JSON格式的请求数据,点击发送即可,如图2.18所示。

图2.18  发送JSON格式POST请求

注:输入的JSON数据要符合JSON语法格式,只能用双引号,不能用单引号,不支持注释等。如果格式错误,对应行数字后会有相应的x号标记。
在选择完raw->JSON(application/json)后,Postman会自动在请求头中添加内容类型声明Content-Type: application/json。

发送XML格式POST请求

XML格式的请求同样属于raw原始格式的一种。选择POST请求方法,填写接口地址,选择Body请求体,选择raw,在右侧的下拉菜单中选择XML,application/xml或text/xml均可。如图2.19所示。

图2.19  发送XML格式POST请求
同样,在选择为XML格式后Postman会在请求头中添加对应的内容类型声明。

发送文件上传类型的请求

文件上传请求一般采用multipart/form-data混合表单格式。每个文件同样对应一个参数变量。在Postman里Body请求体重选择form-data格式,填写对应的参数变量,点击该参数单元格右侧的下拉小箭头中选择File(文件),在后面的单元格中点击选择文件即可。如果2.20所示。

图2.20  使用Postman上传文件

如果需要上传多个文件,填写多个变量即可,也可以填写普通Text(文本)变量。

响应

在编辑完请求后点击发送即可收到响应。响应区分为Body响应体、Cookies响应Cookies、Headers响应头和Test Results测试结果。右侧还包含Status状态码、Time响应时间和Size数据大小三组数据。
响应数据可以使用Pretty美化格式(通常用于JSON或XML格式的响应数据)、Raw原始格式和Preview预览格式(一般用于预览HTML网页),后面还可以设定数据的格式来进行Pretty美化展示。
换行图标可以将单行的响应数据按树状格式多行显示。右侧为复制、字段搜索和Save Response保存响应3个按钮。如图2.20。

环境和变量

变量用于对请求数据进行参数化。环境则为一套变量配置。通过在请求中使用参数化变量,加上切换环境可以快速批量改变请求中的某些参数值,如base_url接口地址。

环境变量设置

点击环境管理区的环境设置图标,可以打开环境管理对话框,点击添加按钮或已存在的环境名可以新建或修改环境。如图2.21所示。

图2.21  新建环境并添加变量

环境变量使用

在环境选择下拉框选择指定环境,在请求URL或者请求Body里使用{{变量名}}来使用指定的环境变量。如图2.22所示。

图2.22  使用环境变量

变量可以在请求Body的各种格式中使用,但不能直接在请求前脚本(Pre-request Script)和请求后脚本(Tests)中使用。

全局变量

环境管理中还可以点击“GLOBAL”按钮添加全局变量.环境变量只有当选择了该环境时生效,全局变量在任何环境中生效。如果全局变量和环境变量名有重复,环境变量的优先级大于全局变量。

注:测试集Collection中也有Variables集合变量,只对保存在当前Collection中的请求生效。三种变量的优先级关系为环境变量>全局变量>集合变量。

测试脚本及断言

断言是指预期结果与实际结果的对比。包含断言的请求才能称得上是完整的测试用例。
Postman每个请求中都包含一个Tests选项卡,称为测试脚本,在收到响应后执行。在Tests测试脚本中可以对响应数据进行提取并添加断言。
Tests脚本区右侧会提供很多常用的SNIPPETS代码段,只要点击对应的代码段即可快速实现指定的功能或断言。

状态码断言

状态码断言是最基本的断言之一,可以用于断言响应是否成功返回(状态码200)。
切换到请求的Tests测试脚本面板,在右侧SNIPPETS代码段中找到Status code: Code is 200并点击。Tests脚本中会出现以下代码。

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

其中Status code is 200是该断言的标题,pm.response.to.have.status(200);是具体的断言语句,如果要断言其他状态码可以修改括号中的200为对应的状态码。

包含文本

Tests脚本中可以添加多条断言。要断言响应文本在代码段中点击Response body: Contains string,Tests脚本中会出现以下代码。

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

修改include括号中为实际应包含的字符串即可。

JSON数据断言

JSON数据断言要先将文本格式的请求数据转换为JSON对象,然后根据JSON机构提取对应的字段进行对比。
在代码段中点击Response body: JSON value check。Tests脚本中会出现以下代码段。

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

var jsonData = pm.response.json();是将请求体数据转换为JSON对象赋给jsonData变量。pm.expect(jsonData.value).to.eql(100);为从JSON数据中提取第一级的value值请判断是否等于100。这里要修改value为对应要提取的字段,100改为对应的值。多个字段的断言可以写多个相同结构的断言,也可以写到同一个断言中使用多条pm.expect(jsonData.字段名).to.eql(期望值);语句。多层字段使用点来逐级提取。

运行测试

在请求Tests添加完断言后,点击发送,在响应的Test Results处就可以看到各条断言的结果。

请求集

对应常用的请求我们可以保存到Collection请求集中。点击请求右侧的Save按钮或按Ctrl+S即可弹出保存请求的对话框,输入请求名称,选择Collection集合点击保存即可。
Collection请求集用于组织和管理请求,Collection可以视为一个顶级的测试套件或测试计划。Collection中可以建立多层Folder子文件夹,来对请求进行分组管理。
Collection是Postman中接口管理的一个“整体”单位,运行、导出、分享等都是基于测试集的。
点击工具栏New按钮,选择Collection或者直接点击测试集列表上方的New Collection按钮即可弹出新建Collection界面。如图2.23所示。

图2.23  新建Collection请求集

Collection请求集包含名称、Description描述、Authorization授权、Pre-request Scripts请求前脚本、Tests测试脚本和Variables集合变量几部分组成。
在已存在的请求集上点击右侧的...按钮还可以对该请求集进行编辑、Add Folder建立子文件夹或进导出等其他操作。

批量运行Collection Runner

点击工具栏的Runner按钮或Collection右侧的三角按钮可以打开Collection Runner集合运行器窗口。集合运行器可以批量运行一个Collection或Folder中的所有请求。并根据请求中的断言信息判断请求通过与否。同时Collection Runner还支持设置迭代次数以及使用CSV或JSON文件进行数据驱动。
以下为使用Collection Runner及CSV文件进行数据驱动的一个完整示例。

Body请求数据格式选x-www-form-urlencoded,请求数据填写username {{username}} password {{password}},这里使用了两个变量来做参数化,然后在请求Tests中添加状态码断言。然后保存请求到Demo2中。如图2.24所示。

图2.24  添加并保存请求

  • (3) 使用数据文件。在电脑上新建一个data.csv文件,第一行为变量名,下面是数据,如图2.25所示。

图2.25  新建带标题行的CSV文件

其中标题行变量名要与请求中参数化的变量名一致。

  • (4) 打开Collection Runner,选择请求集Demo2,点击Select File选择data.csv数据文件,点Run Demo2运行请求集。如图2.26所示

图2.26  Collection Runner选择集合和数据文件

-(5)运行完成后即可查看报告,如图2.27所示。

图2.27  集合运行报告

在测试报告页可以对报告进行Export Results导出、Retry重跑或New运行新的Collection。

注:如果请求中未在Tests中设置断言,通过数和失败数都会显示为0。

posted @ 2022-03-18 13:02  韩志超  阅读(1289)  评论(0编辑  收藏  举报