Postman进阶篇(十二)-在脚本中使用pm对象访问接口响应数据(pm.response.*)

  • 在之前的文章中介绍过postman中的两个脚本——pre-request script或test script,在这两个脚本中都有使用到pm对象。(pre-request script详细介绍Test script详细介绍
  • pm对象是在postman的脚本中非常重要,也是十分常用的方法。
  • 本篇主要介绍pm对象的使用方法操作接口返回结果。

一、pm对象介绍

  • pm对象是Postman提供的可以在请求脚本中使用的JavaScript API。
  • pm对象提供对请求和响应数据以及变量的访问,使用pm对象可以对请求数据或响应数据的进行操作。

二、使用PM对象访问与操作响应数据(pm.response.*)

  • pm.response 对象可以在脚本中对返回结果进行访问。
  • **不同于pm.request,pm.response只能用于test脚本当中。**是校验请求结果正确性时一定会用到的方法。
  • 原因也很简单,pre-request脚本是在接口请求之前就运行的,此时接口返回响应结果。test脚本是在接口响应已经返回的情况下运行的,所以可以针对响应数据进行访问和操作。

下面内容涉及以下知识点:
Test script详细介绍console控制台详细介绍

(1)接口响应状态与信息

  • 接口响应状态码
    pm.response.code 
    
  • 接口响应状态
    pm.response.status 
    
  • 接口响应时长
    pm.response.responseTime
    
  • 接口响应body大小
    pm.response.responseSiz
    
  • 接口响应总大小
    pm.response.size() 
    // 方法返回值示例:{body: 444, header: 336, total: 780}
    
  • 接口响应文件信息
    pm.response.contentInfo()
    
  • 在脚本中运行后,可以在控制台查看打印信息
    在这里插入图片描述

(2)接口响应头

  • 接口响应头

    pm.response.headers 
    
  • 访问响应头的方法与请求头类似,但是由于接口响应头是在接口请求完成时才能获取到,所以增删改的方法在访问响应头时并不常用。

  • 这里介绍一些常用的接口响应头的查询方法:

    • 返回所有响应头参数:
      pm.response.headers.all()
      
    • 获取响应头中某个参数的值:
      pm.response.headers.get("variable_key")
      
    • 判断响应头中某个参数是否存在:
      pm.response.headers.has("variable_key")
      
    • 响应头大小:
      pm.response.headers.contentSize()
      
    • 响应头列表长度:
      pm.response.headers.count()
      
    • 响应头列表(Object):
      pm.response.headers.toObject()
      
    • 响应头列表(string):
      pm.response.headers.toString()
      
    • 响应头列表(string):
      pm.response.headers.toString()
      
  • 方法比较多,就不一一演示了。可以参照示例,在postman中实际运行一下。
    在这里插入图片描述

  • 也可以使用内置方法对响应头头参数进行操作,感兴趣可以试一下:

    pm.response.headers.each(function(i) {
          
          console.log(i)}) //返回响应头列表里每一个参数
    console.log("返回某个位置的参数:",pm.response.headers.idx(0)) //传入整数,返回响应头参数列表中对应位置的参数
    console.log(pm.response.headers.filter({
          
          value: "application/json; charset=utf-8"}))//过滤器,根据条件返回对应的响应头参数。此方法的返回结果为数组,只要符合条件的参数都会返回。
    console.log(pm.response.headers.find({
          
          value: "application/json; charset=utf-8"})) //查找响应头参数,返回符合条件的参数。此方法只会返回第一个匹配的结果。
    

(3)接口响应body

  • 接口响应(字符串格式)

    pm.response.text()
    
  • 接口响应(json格式)

    pm.response.json()
    
    • 如果接口响应内容为json格式时,可以通过key访问接口参数,例如
      pm.response.json()["args"]
      
      在这里插入图片描述

三、运用示例

  • 因为pm.response的特性,pm.response在test脚本中非常重要,特别是在断言接口响应的正确性时,一定会用到这个方法。
  • 例如,检验接口状态码是否等于200:
    pm.test("接口响应状态码是否等于200", function () {
          
          
        pm.expect(pm.response.code).to.equal(200);
    });
    
    • 运行后可以在响应结果中的Test Results中查看校验结果
      在这里插入图片描述
  • 更多的使用示例可以参照专栏之前文章: Test script入门及校验接口返回值

附录:postman系列文章目录

本篇文章姊妹篇:
Postman进阶篇(十一)-在脚本中使用pm对象访问接口请求(pm.request.*)

零基础入门接口功能测试教程-目录

—————————————————————————————————
postman系列文章内所使用的示例文件已经上传到了本人运营公众号【软件测试必备技能】
在这里插入图片描述
有需要可点击文章下发二维码,前往领取~
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40883833/article/details/128228111