Postman常用功能操作

Postman是一款支持http协议的接口调试与测试工具,功能强大,使用简单且易用性好 。无论是开发人员进行接口调试,还是测试人员做接口测试,postman都是我们的首选工具之一 。

为了让便于大家快速了解其常用功能,尤其是接口测试中经常使用到的部分,我将从以下几个维度来加以说明。它们分别是:

  • 界面主要功能
  • JSON类型的接口请求
  • Collection
  • 断言
  • Tests Scripts
  • 变量
  • 接口关联

界面主要功能

Postman常用功能操作_第1张图片

JSON类型的接口请求

大部分接口都是JSON类型的接口请求,即请求头中Content-Type的类型为application/json。我们以登录接口为例演示如何使用Postman发送请求。
假设我们的登录请求接口信息如下:

  • 请求方法:POST
  • 请求URL: http://ServerIP:Port/user/login
  • 请求体数据:{“username”:“username”, “password”:“password”}
    Postman上操作步骤如下:
  1. postman上新建一个请求
  2. 设置相关参数,如下图所示:
    Postman常用功能操作_第2张图片
    Postman常用功能操作_第3张图片
  3. 点击Send后查看响应数据,如下图所示:
    Postman常用功能操作_第4张图片

Collection

Collection在Postman里的主要作用就是对接口测试用例进行集中批量管理,通过Collection,我们可以对用例进行分类管理和维护,同时可以对接口用例进行批量测试,方便进行回归测试。

创建Collection

点击Postman左上角新建或者在collection Tab菜单下点击"+"即可创建collection。
Postman常用功能操作_第5张图片

将测试用例添加到collection中

可以选择新建的collection,点击右下角的"…"按钮选择添加request,如下图所示:
Postman常用功能操作_第6张图片
也可编写好request后,选择保存request,然后在postman中弹出的对话框中选择保存到对应的collection中,如下图所示:
Postman常用功能操作_第7张图片

批量执行collection中的用例

点击collection右侧的三角形按钮,点击"Run",Postman会弹出一个叫Collection Runner的界面,默认会把Collection中的所有用例选中,如下图所示
Postman常用功能操作_第8张图片
点击运行按钮,就会对Collection中选中的所有测试用例运行。
Postman常用功能操作_第9张图片
执行完成后,可以查看对应执行结果
Postman常用功能操作_第10张图片

断言

断言主要是对request返回的数据进行相应的判断,从而方便我们进行自动化测试,postman提供的断言使用JS编写,在响应体数据返回后执行 。postman已经给我们内置了一些常用的断言 ,需要用的时候,只需从右侧点击其中一个断言,就会在文本框中自动生成对应断言代码块。
Postman常用功能操作_第11张图片
如上图所示,针对登陆这个接口,在Tests标签内对请求返回的数据使用了2个断言,第一个断言判断请求返回的状态码是否为200,第二个断言判断返回的token长度是否为32,这两个断言都通过测试的话基本可以认为这个接口测试是通过的。
Postman提供了的内置断言如果不满足需要的话,大家可以查阅官方文档里面提供的demo,链接如下:
Tests官方样例参考

Tests Scripts

在断言部分的介绍中,我们其实已经使用了Tests脚本,其实Postman 的 script 主要分成两类,一类是 Pre-Request Scripts,在发送请求之前执行,一类是 Tests,在接收到响应之后执行。
Collection/Folder/Request 层面都可以定义自己的 Pre-Request Scripts 和 Tests,执行顺序如下:

  • 与集合关联的预请求脚本将在集合中的每个请求之前运行
  • 与文件夹关联的预请求脚本将在文件夹中的每个请求之前运行
  • 与集合关联的测试脚本将在集合中的每个请求之后运行
  • 与文件夹关联的测试脚本将在文件夹中请求后运行

对于集合中的每个请求,脚本将始终根据以下层次结构运行:集合级脚本(如果有)、文件夹级脚本(如果有)、请求级脚本(如果有)。
Postman常用功能操作_第12张图片
单个请求的执行顺序如下:

  • 与请求关联的预请求脚本将在发送请求之前执行
  • 与请求关联的测试脚本将在请求发送后执行
    Postman常用功能操作_第13张图片

变量

变量使我们可以在请求或脚本中存储和重复使用其值,通过将值保存在变量中,可以在集合,环境或请求中引用。例如,我们的接口除了登录以外,所有接口都需要添加token信息,如果发送每个请求前都再执行一遍登录接口或者将请求token放到Pre-Request Scripts中未免显得有些繁琐,我们可以将登录接口返回的token存到变量中,后面接口发送请求时直接获取该变量值并填写到headers中即可。

变量类型

在postman常用的三种变量分别是全局变量,环境变量,集合变量 。

  • 全局变量:一旦声明了全局变量,全局有效,也就是说postman中的任何集合,任何请求中都可以使用这个变量。它的作用域是最大的 。
  • 环境变量:要声明环境变量,首先需要创建环境,然后在对应环境中创建变量。如果要想使用环境变量,必须先选择(导入)这个环境 。环境也可以创建多个,每个环境下又可以有多个变量 。
  • 集合变量:集合变量是针对集合的,也就是说声明的变量必须基于某个集合,它的使用范围针对这个集合有效 。

变量作用域

变量的作用域采用"就近原则",如果在两个不同的作用域中声明了同名的变量,那么将使用作用域最小的变量中存储的值——例如有一个全局变量和一个局部变量都命名为username,则请求时将使用局部变量的值运行。
Postman常用功能操作_第14张图片

定义变量

定义全局变量和环境变量,点击Postman右上角的小齿轮,弹出如下界面,就可以根据需求定义全局变量或者环境变量了。
Postman常用功能操作_第15张图片
集合变量可以点击集合右侧“…”按钮,选择“Edit”,选择变量选项卡添加或编辑变量
Postman常用功能操作_第16张图片
Postman常用功能操作_第17张图片

获取变量

如果在请求参数中获取变量,无论是获取全局变量,还是环境变量,还是集合变量,获取的方式都是一样的编写规则:{{变量名}} 。

请求参数指的是:URL,Params , Authorization , Headers , Body
如果是在编写代码的位置(Tests,Pre-requests Script)获取变量,获取不同类型的变量,编写的代码都不相同,具体如下:

  • 获取环境变量:pm.environment.get(‘变量名’)
  • 获取全局变量:pm.globals.get(‘变量名’)
  • 获取集合变量:pm.pm.collectionVariables.get.get(‘变量名’)

设置变量

设置变量在Tests和Pre-requests Script中进行

// Variables
// 这个方法会从上面所有的变量来源寻找对应的变量,就近原则,优先从最靠近自己的地方找
var value = pm.variables.get("variable_key"); 

// Globals
// 设置一个全局变量
pm.globals.set("variable_key", "variable_value");
// 取消设置全局变量,移除变量
pm.globals.unset("variable_key");

// Environments
// 设置一个环境变量
pm.environment.set("variable_key", "variable_value");
// 从环境中移除某一个变量
pm.environment.unset("variable_key");

// Collection
// 设置一个 collection 变量
pm.collectionVariables.set("variable_key", "variableValue");
// 从 collection 中移除一个变量
pm.collectionVariables.unset("variable_key");

// local
pm.variables.set("variable_key", "variable_value");
pm.variables.unset("variable_key");

接口关联

在接口测试中,我们经常遇到这种情形:上一个接口的返回数据是下一个接口的输入参数 ,那么这俩个接口就产生了关联。 这在做接口测试时非常常见,在postman中,实现这种关联关系的实现思路如下:

  • 提取上一个接口的返回数据值
  • 将这个数据值保存到环境变量或全局变量中
  • 在下一个接口获取环境变量或全局变量

我们在变量部分举的登陆获取token的例子就是这种场景。

你可能感兴趣的:(postman,测试工具,后端)