Postman使用总结

Collection集合

  • 在Postman里,所有的request请求都只能存放在collection集合目录或者集合目录下的子文件夹中

  • 可以把一个collection当做一个项目工程

  • 同一个项目的接口测试请求全部放在一起

  • 批量执行接口请求(测试)的触发单位就是collection

  • 导出功能只支持导出整个collection,无法导出单个请求或者一整个子文件夹的请求
    在这里插入图片描述
    在这里插入图片描述

  • 导出: JSON格式的文件的好处就是可以跨平台,任何操作系统都支持和识别。我们在工作中,经常会遇到需要在不同的电脑或者操作系统上做接口测试,所以collection项目工程是需要迁移的,所以需要使用导出和导入功能。

  • 导入:在这里插入图片描述

Folder接口模块化管理

  • 设计普通的功能测试用例的时候,我们也是基于模块化划分的方式去管理测试用例的

  • 利用Postman具有在Collection下创建Folder文件夹的特性来搭建和管理一套基于模块化划分的接口测试框架

在这里插入图片描述

Request接口请求

在这里插入图片描述

手工接口测试

在这里插入图片描述

在请求区域(上半区)选择Params(默认),依次填写KEY和VALUE,DESCRIPTION可以选填

  • KEY:接口的参数名称
  • VALUE:入参的值
  • DESCRIPTION:参数的说明,有时候参数很多,而且参数名是英文的,可以在输入框中填写中文说明在这里插入图片描述

在这里插入图片描述

在Postman工具中,我们并不一定需要在Params区域里填写参数,可以直接利用GET请求的原理,直接在接口URL路径上拼接参数

根据接口的业务要求,由于只有管理员账号才可以获取成员列表,所以我们需要在请求头信息中设置Authorization参数,参数的值填写管理员账号登录后(通过接口调用的方式)的登录授权码(行业内也喜欢叫token令牌号)在这里插入图片描述

处理上下游接口依赖

比如上一个例子,获取成员列表信息需要在请求头中设置变量Authorization这是人工直接复制过来的,如果后期该值发生改变那么需要重写修改很麻烦。

上游接口的返回结果的某些想要使用的值提取出来,然后存放在一个公共的区域,待下游接口需要用到的时候,直接去公共区域拿就可以了,这个在接口测试的领域里也有另一个专业术语,叫做“数据传递”。

在这里插入图片描述

编辑公共环境变量
  1. 点击“眼睛”图标,打开Postman环境变量总窗口
  2. 点击窗口下半部Globals区域的最右边的【Edit】按钮后,打开一个Globals标签页
  3. 填写VARIABLE (变量名称):可以任意取名,但一般最好是和实际业务相关的,比如:ipAddress
  4. 不用管INITIAL VALUE (初始值),这个值比较鸡肋
  5. 填写CURRENT VALUE (当前值):http://localhost:6088
  6. 填写完毕后,快捷键Ctrl+S保存当前标签页就可以生效了
  7. 关闭标签页,重新点开“眼睛”按钮,可以看到一个新变量已经添加完毕

在这里插入图片描述

公共环境的变量引用
  • 在Postman里,变量引用的方式是两对大括号中间加上变量名称,例如:{{ipAddress}}在这里插入图片描述

不同接口间的数据传递

  • 接口与接口之间往往都有业务上的联系,比如:登录与获取成员列表,如果你不登录,无法获取成员列表,所以这个时候,我们称“登录”为上游接口,而“获取成员列表”为下游接口。
  • 一个上游接口往往可以为多个下游接口服务,一个下游接口也往往需要多个上游接口提供“前置服务”,上游接口很像我们写测试用例时前置条件的感觉。
  • 这种上游接口把数据传递到下游接口的行为,我们叫做“数据传递”、“传参”等

提取接口响应内容里的参数

  • 使用编码技术来完成接口的数据参数传递的工作,在上下游接口请求的Tests里编写Java Script代码(莫慌,大多数代码可自动生成)来实现:

    上游接口:

    (1) 提取接口服务返回的响应内容里的参数的值

    (2) 把提取到的值赋值给一个自定义的变量名称

    (3) 把自定义的变量名称传递给公共环境或指定的私有环境

    下游接口:

    (4) 在参数填写或者在写JSON字符串时,引用变量名称

    在这里插入图片描述

  • 我们要写的第一句代码是“发送接口请求后,获取所有服务器返回的响应体内容(包含headers头部内容或者body身体内容)”,但是预置代码里没有非常合适的,所以我们只能人工写

    // 获取响应体的所有body内容,赋值给变量jsonData
    // var是Javascript语言中声明变量的语法关键字
    // JSON是保留类,类里有一些方法是专门处理JSON字符串的
    // responseBody是Postman的保留字,它就是响应报文里的所有body内容
    // Javascript语言推荐每行代码结束后要加英文的";"分号
    var jsonData = JSON.parse(responseBody); 
    
    // 获取响应体的Headers头信息中的内容,赋值给变量adminAuth,
    // 关于变量名称,一般业务含义是什么,变量名称就取什么名字,
    // 这里要提取的是头信息中的Authorization登录授权码
    // postman是Postman的保留字,可以点出一些方法,但Postman工具内嵌的JS语言编译环境并不完善,
    // 所以无法点出所有方法,有些被隐藏了,只能硬背或询问度娘
    // getResponseHeader方法可以拿到所有的响应报文的headers头信息,
    // 然后在方法名称后的括号中以字符串的形式填写指定的头信息里的参数,比如这里的Authorization
    var adminAuth = postman.getResponseHeader("Authorization")
    
  • 然后把adminAuth放到Postman的公共环境中,这个很方便,直接使用代码生成器即可,选择右侧的预置代码Set a global variable,然后改一下参数即可在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X3xeT2Jl-1655904082917)(Postman使用总结.assets/image-20220622211437579-165590367936418.png)]

  • Postman的原理是发送接口请求后,服务器会返回响应内容(显示在下半区Response中),然后会执行Tests脚本;所以通过上述的代码,我们实现了提取头信息的参数和其值,然后把值存放在公共环境中以变量进行管理,无论是公共环境还是私有环境,其实就是一个“数据的中转站”。在这里插入图片描述

在这里插入图片描述

下游接口的数据使用

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐