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

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

文章目录

  • 一、pm对象介绍
  • 二、使用PM对象访问与操作响应数据(pm.response.*)
    • (1)接口响应状态与信息
    • (2)接口响应头
    • (3)接口响应body
  • 三、运用示例
  • 附录:postman系列文章目录

一、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()
    
    • 在之前的专栏文章中介绍过postman中也可以直接使用“responseBody”来调用接口响应,这种方法等同于pm.response.text()
      (Postman进阶篇(五)-实战:Test script解密接口返回结果(AES))
      在这里插入图片描述
  • 接口响应(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.*)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud学习笔记 - Nacos配置中心搭建 - Nacos Config

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。 Spring Cloud Alibaba Nac…

Volo - Rust gRPC 框架入门

一、参考资料 Volo-GitHub Volo-Overview 二、开发环境搭建 1、安装脚手架 # 安装 volo-cli cargo install volo-cli # 验证安装 volo help 2、编写 IDL # 文件 volo_demo.protosyntax "proto3"; package volo.demo;message Item {int64 id 1;string title …

React学习26(react-redux优化 工作使用)

项目结构 优化说明 1&#xff09;容器组件和UI组件混合成一个文件 2&#xff09;无需自己给容器传递store&#xff0c;在index.js入口文件给包裹一个Provider <Provider store {store}><App/> </Provider> 3&#xff09;使用了react-redux后也不用自己在…

Python入门教程:基本运算符

1.运算符 计算机可以进行的运算有很多种&#xff0c;可不只加减乘除这么简单&#xff0c;运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算&#xff0c;今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算 2.算数运算 …

数据聚合、数据同步

文章目录数据聚合Bucket聚合语法聚合结果排序限定聚合范围Metric聚合语法RestAPI实现聚合数据同步发送MQ消息接收MQ消息数据聚合 Bucket聚合语法 GET /hotel/_search {"size": 0, // 设置size为0&#xff0c;结果中 不包含文档&#xff0c;只包含聚合结果~"…

Spark-内核(集群管理器、通讯架构、任务调度机制、Shuffle、内存管理)

文章目录Spark内核Spark部署模式的集群管理器YARN模式运行机制Standalone模式运行机制Spark通讯架构通信架构概述通讯架构解析Spark任务调度机制任务调度概述Stage级调度Spark Task级调度调度策略本地化调度失败重试与黑名单机制Spark Shuffle解析ShuffleMapStage与ResultStage…

SpringCloud微服务之Zuul网关

SpringCloud微服务之Zuul网关 家庭生活中经常有这样的感悟&#xff0c;家中的财政大权在老婆手里&#xff0c;想要花个小钱买个冰棍&#xff0c;得跟老婆请示&#xff0c;想要出个远门看看北京猿人&#xff0c;得跟老婆请示&#xff0c;想不要脸面去个夜店看看别的妞好在哪里&…

代码随想录第九天

专题&#xff1a;字符串 题目&#xff1a;字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。 比如&#xff0c;输入字符串"abcdefg"和数字2&#xff0c;该函数将返回左旋转两位得到的结果"cdefgab&…

ADI Blackfin DSP处理器-BF533的开发详解56:CVBS输入-DSP和ADV7180的MDMA用法(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 CVBS IN视频输出 代码实现功能 电视视频是奇场合偶场交替传输的&#xff0c;所以通过 CVBSIN 模块采集到的图像如上实验所看到的&#xff0c;是…

CentOS 7.6 安装与配置 MySql 5.7.40

1 通过wget下载MySql的rpm # wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm2 检查是否存在MySql的repo # cd /etc/yum.repos.d/ # ls CentOS-Base.repo CentOS-Epel.repo可以看到没有MySql的repo 3 安装MySql的repo&#xff0c;并查看是否安…

React 生命周期

React 生命周期 这篇文章&#xff0c;我们来聊一聊在React中的生命周期。首先我们明确一点&#xff0c;在React中&#xff0c;函数式组件是没有生命周期的。谈到生命周期&#xff0c;都是关于类组件的&#xff01; 生命周期官方网址 React.Component – React (docschina.or…

macOS Monterey 12.6.2 (21G320) Boot ISO 原版可引导镜像

macOS Monterey 12.6&#xff0c;皆为安全更新&#xff0c;不再赘述。 macOS Monterey 12.6&#xff0c;发布于 2022 年 9 月 12 日&#xff08;北京时间今日凌晨&#xff09;&#xff0c;本次为安全更新。 今日&#xff08;2022-07-21&#xff09;凌晨&#xff0c;Apple 终于…

CentOS 8:SSH远程登录

SSH远程登录 SSH远程登录&#xff0c;也是 C / S 模式 服务端&#xff1a;sshd &#xff0c;默认是启动的 systemctl status sshd systemctl start sshd SecureCRT 是打开了一个远程终端 注意&#xff1a;在终端环境里&#xff0c;不可以启动GUI程序 例如&#xff0c;在 …

【单片机】DS1302时钟/蜂鸣器

目录 一、DS1302时钟 1、DS1302时钟的介绍 2、DS1302时钟寄存器 3、DS1302时序图 4、BCD码 5、写一个时钟 6、写一个可调时钟 二、蜂鸣器 1、蜂鸣器的介绍​编辑 2、三极管放大驱动蜂鸣器 2.1NPN三极管工作原理&#xff08;基极电流和发射电流均流向集电区&#xff…

Python图像识别实战(二):实现批量图像读取和像素转换(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用&#xff0c;分为分类问题&#xff08;预测值是离散型&#xff09;和回归问题&#xff08;预测值是连续型&#xff09;&#xff08;具体见之前的文章&#xff09;。 从本期开始&#xff0c;我将做一个关于图像识别的…

Dubbo 3 Dubbo 快速入门 3.2 Dubbo 快速入门 3.2.3 服务消费者

Dubbo 【黑马程序员Dubbo快速入门&#xff0c;Java分布式框架dubbo教程】 3 Dubbo 快速入门 文章目录Dubbo3 Dubbo 快速入门3.2 Dubbo 快速入门3.2.3 服务消费者3.2 Dubbo 快速入门 3.2.3 服务消费者 OK&#xff0c;之前我们 已经完成了 服务提供 者的改造 现在来改造 服务…

智能电网中采用博弈论的方法(Python代码实现)

目录 1 概述 2 系统模型 2.1 单价模型 2.2 效用模型和 能源消费者&#xff08;EC&#xff09; 的目标 2.3 成本模型和 中央电站&#xff08;CPS&#xff09; 的目标 2.4 优化问题 3 优化的能源管理模型 4 模型的特性 4.1 均衡的存在 4.2 决策过程 5 算法 6 数值的…

vector详解(不定长数组)

目录 什么是vector vector的介绍 模板的声明方式 vector的基本操作 push_back insert erase 遍历vector 小明爱数列-练习题 思路 什么是vector vector的介绍 和我一样,我猜你们看到题目时心里都会产生一个疑问"什么是vector?(大佬除外)".vector其实是…

一起Talk Android吧(第四百四十四回:UI控件之DatePicker)

文章目录概念介绍使用方法内容总结各位看官们大家好&#xff0c;上一回中咱们说的例子是"UI控件之NumberPicker",这一回中说的例子是"UI控件之DatePicker"。闲话休提&#xff0c;言归正转&#xff0c;让我们一起Talk Android吧&#xff01; 概念介绍 看官…

CSS实现文字扫光特效

上大学的玩 ae 的时候&#xff0c;就曾遇到过这个特效。偶然在百度看到了类似特效&#xff0c;没想到竟然能用 css 实现&#xff0c;所以就研究了一下&#xff0c;文字扫光效果如下&#xff1a; 实现思路&#xff1a; 光效移动效果&#xff0c;可以通过 background-image 设置…