Postman使用简介
文章目录
Postman简介
Postman是一款简单方便的接口调试工具,便于分享和协作。具有接口调试、请求集管理、环境配置、参数化、断言、批量执行、请求录制、Mock Server,、接口文档、接口监控等功能。
Postman主界面
Postman主界面分为菜单栏、工具栏、请求管理区、环境管理区、请求设计区及状态栏等主要部分组成,如图2.13所示。
菜单栏
Postman菜单栏由File(文件)、Edit(编辑)、View(显示)和Help(帮助)4个主菜单组成。
工具栏
Postman的工具栏中是一些常用的工具按钮如新疆、导入、运行器等等。详细按钮及解释参考表2.4。
请求管理区
请求管理区位于Postman主体的左侧,用于查看保存的请求列表或请求历史。主要分为Collections接口集和History请求历史两种视图。
接口集,相当于一个接口项目或测试计划,接口集中可以建立无限极子文件夹,用于对接口进行分组管理。请求历史记录视图中可以查询到之前的请求记录。
环境管理区
环境管理区分位于Postman主体右侧请求设计区右上角。由一个环境选择下拉框,一个眼睛(预览)图标和一个环境设置图标组成。环境选择下拉框中可以切换不同的环境。环境预览按钮可以快速雨来环境中的所有变量设置。环境设置中可以添加修改环境变量以及全局变量。
注:什么是环境?
环境是一套配置,包含许多环境变量。在接口测试中,根据部署在不同的服务器上,服务器地址有可能不同,而同一个接口,接口地址是不变的。为了测试部署在不同服务器上的同一套接口,我们可以建立不同的环境,不同环境中host变量使用不同的地址。
请求设计区
请求设计区位于Postman右侧,是Postman的核心功能区。请求设计区上半部分为请求区,下半部分为响应区。可以通过上方的Tab选项卡边上的+好,新建多个请求面板,如图2.14所示。
请求区主要由请求地址行和请求数据区组成。
请求地址行中可以选择请求方法(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所示。
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所示。
注:在选择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所示。
注:输入的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所示。
同样,在选择为XML格式后Postman会在请求头中添加对应的内容类型声明。
发送文件上传类型的请求
文件上传请求一般采用multipart/form-data混合表单格式。每个文件同样对应一个参数变量。在Postman里Body请求体重选择form-data格式,填写对应的参数变量,点击该参数单元格右侧的下拉小箭头中选择File(文件),在后面的单元格中点击选择文件即可。如果2.20所示。
如果需要上传多个文件,填写多个变量即可,也可以填写普通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所示。
环境变量使用
在环境选择下拉框选择指定环境,在请求URL或者请求Body里使用{{变量名}}来使用指定的环境变量。如图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脚本中会出现以下代码。
Copypm.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脚本中会出现以下代码。
Copypm.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脚本中会出现以下代码段。
Copypm.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所示。
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文件进行数据驱动的一个完整示例。
- (1) 新建一个Collection,比如名称Demo2
- (2) 新建请求,填入URL:https://demo.fastadmin.net/admin/index/login.html,选择POST方法
Body请求数据格式选x-www-form-urlencoded,请求数据填写username {{username}} password {{password}},这里使用了两个变量来做参数化,然后在请求Tests中添加状态码断言。然后保存请求到Demo2中。如图2.24所示。
- (3) 使用数据文件。在电脑上新建一个data.csv文件,第一行为变量名,下面是数据,如图2.25所示。
其中标题行变量名要与请求中参数化的变量名一致。
- (4) 打开Collection Runner,选择请求集Demo2,点击Select File选择data.csv数据文件,点Run Demo2运行请求集。如图2.26所示
-(5)运行完成后即可查看报告,如图2.27所示。
在测试报告页可以对报告进行Export Results导出、Retry重跑或New运行新的Collection。
注:如果请求中未在Tests中设置断言,通过数和失败数都会显示为0。
来源地址:https://blog.csdn.net/qq_43842093/article/details/127342714
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341