当前位置: 首页 > news >正文

Postman之数据提取

Postman之数据提取

      • 1. 提取请求头\request中的数据
      • 2. 提取响应消息\response中的数据
      • 3. 通过正在表达式提取
      • 4. 提取cookies数据

本文主要讲解利用pm对象对数据进行提取操作,虽然postman工具的页面上也提供了一部分的例子,但是实际使用时不是很全面,因此总结记录一下工作中常用到的pm对象相关方法

1. 提取请求头\request中的数据

pm.request:获取请求头的所有消息,包括url、请求头、请求方法、请求体等,返回的是一个对象

在这里插入图片描述
在这里插入图片描述
当看懂了pm.request后,想要获取具体的数据就很简单了不需要去死记,只需要通过节点一层层的去取就行了
如:需要获取port的值,则只需要pm.request.port即可,格式:pm.request.xxx.xxx
示例:

#获取请求头所有数据
value0 = pm.request
#获取端口
value1 = pm.request.url.port
#获取请求协议
value2 = pm.request.url.protocol
#获取请求方法
value3 = pm.request.method
#获取请求体
value4 = JSON.parse(pm.request.body.raw)['out_trade_no']
#在控制台打印
console.log(value0,value1,value2,value3,value4)
#查看数据的类型
console.log(typeof(value4))

注意:需要注意的是获取请求体时,返回的实际是一个字符串;当我们要获取里面的具体某个参数时,要先将字符串转换成JSON格式对象,然后通过key去取对应的值;格式:JSON.parse(需要转换的值)['key']
如:上面演示的:需要转换的值就是:pm.request.body.raw的返回值,key就是:out_trade_no

在这里插入图片描述
在这里插入图片描述

将JSON字符串转解析为对象:
JSON.parse(xxx_vaule)

将对象转换为JSON字符串:
JSON.stringify(xxx_value)

将对象序列化为JSON字符串:
objectname.toJSON()

转换为字符串
objectname.toString()

数据的提取,重点在于数据的类型、格式,合理的运用以上内容格式的转换可以更方便的对数据进行操作、提取

2. 提取响应消息\response中的数据

  1. pm.response

pm.response:返回响应头所有的数据,返回的是一个对象
如图:

在这里插入图片描述
同样的需要取里面的内容时,只需要用返回来的对象,通过节点一层层的去取就行,格式:pm.response.xxx.xxx

如:

//返回响应头所有的数据
value0 = pm.response
//返回响应状态
value1 = pm.response.status
//返回响应码
value2 = pm.response.code
//获取header中key对应的值,注意获取header,需要用pm.response.headers
value3 = pm.response.headers.toJSON()[0]['key']
//控制台打印日志
console.log(value0,value1,value2,value3)

在这里插入图片描述

  1. pm.response.text()
    pm.response.text():以文本的形式返回响应数据
//以文本形式返回响应数据
value0 = pm.response.text()
console.log(value0)
console.log(typeof(value0))

如图:

在这里插入图片描述
4. pm.response.josn()

pm.response.josn():以json对象的形式返回响应数据

//以son对象的形式返回响应数据
value0 = pm.response.josn()
console.log(value0)
console.log(typeof(value0))

如图:

在这里插入图片描述
数据提取演示:

{"code": "40004","msg": "Business Failed","sub_code": "ACQ.TRADE_HAS_SUCCESS","sub_msg": "交易已被支付","trade_no": "2013112011001004330000121536","out_trade_no": "6823789339978248","testArr": [{"id": "1","version": "testV1.0.1","num": "99999"},{"id": "2","version": "testV1.0.2","num": "66666"}]
}
//以son对象的形式返回响应数据
value0 = pm.response.json()
//取code的值
value1 = pm.response.json()['code']
//取testArr的值
value2 = pm.response.json()['testArr']
//取testArr中的第一个version
value3 = pm.response.json()['testArr'][0]['version']
console.log(value0,value1,value2,value3)

结果如图:

在这里插入图片描述

3. 通过正在表达式提取

objectname.match('表达式'):匹配规则对应的内容,注意只能字符串类型的值进行匹配,因此对于非字符串,则需要先转换为字符串才能使用
数据提取演示:

{"code": "40004","msg": "Business Failed","sub_code": "ACQ.TRADE_HAS_SUCCESS","sub_msg": "交易已被支付","trade_no": "2013112011001004330000121536","out_trade_no": "6823789339978248","testArr": [{"id": "1","version": "testV1.0.1","num": "99999"},{"id": "2","version": "testV1.0.2","num": "66666"}]
}
//匹配testArr中第一个version
//匹配testArr中第一个version
value0 = pm.response.text().match('"1","version":"(.*?)","num"')
//匹配header中的Content-Type的值
value1 = JSON.stringify(pm.response.headers).match('Content-Type","value":"(.*?)"}]')
//匹配请求头中的host
value2 = JSON.stringify(pm.request.headers).match('"Host","value":"(.*?)"')
console.log(value0,value0[1],value1,value1[1],value2,value2[1])

在这里插入图片描述

4. 提取cookies数据

#检查指定cookies是否存在
pm.cookies.has("name")
#获取指定名称的cookies
pm.cookise.get("name")
#将cookies以对象的形式返回
pm.cookies.toObject()

相关文章:

Postman之数据提取

Postman之数据提取 1. 提取请求头\request中的数据2. 提取响应消息\response中的数据3. 通过正在表达式提取4. 提取cookies数据 本文主要讲解利用pm对象对数据进行提取操作,虽然postman工具的页面上也提供了一部分的例子,但是实际使用时不是很全面&#…...

selenium元素定位校验以及遇到的元素操作问题记录

页面元素定位方法及校验 使用比较多的是通过id、class和xpath来对元素进行定位。在定位前可以现在浏览器验证是否可以找到指定的元素。这样就不用每添加一个元素定位都运行代码来检查定位方式表达式是否正确。 使用XPATH定位 在浏览器F12,找到元素,在元…...

在AndroidStudio中新建项目时遇到的Gradle下载慢问题,配置错的按我的来,镜像地址不知道哪个网页找的,最主要下载要快

android-studio-2024.2.1.11-windows Android 移动应用开发者工具 – Android 开发者 | Android Developers https://r4---sn-j5o76n7z.gvt1-cn.com/edgedl/android/studio/install/2024.2.1.11/android-studio-2024.2.1.11-windows.exe?cms_redirectyes&met1731775…...

用mv命令替换rm命令

# 用mv命令替换rm命令 主要内容来源自以上博文 rm命令穷凶极恶,以下为替换命令的方式,必做 步骤 修改vim ~/.bashrc加入以下代码 mkdir -p ~/.trash #在家目录下创建一个.trash文件夹(隐藏文件,ls -a 查看) alias rmdel #使用别名…...

电解车间铜业机器人剥片技术是现代铜冶炼过程中自动化和智能化的重要体现

电解车间铜业机器人剥片技术是现代铜冶炼过程中自动化和智能化的重要体现 电解车间铜业机器人剥片技术是现代铜冶炼过程中自动化和智能化的重要体现,它主要应用于铜电解精炼的最后阶段,即从阴极板上剥离出纯铜的过程。以下是该技术的几个关键点&#xff…...

【qt】控件2

1.frameGeometry和Geometry区别 frameGeometry是开始从红圈开始算,Geometry从黑圈算 程序证明:使用一个按键,当按键按下,qdebug打印各自左上角的坐标(相当于屏幕左上角),以及窗口大小 Widget::Widget(QWid…...

Frida反调试对抗系列(四)百度加固

本文只是交流技术,如有侵权请联系我删除。 知识星球:https://t.zsxq.com/kNlj4 前言: 上一篇文章我们提到 我们使用github开源魔改好的frida server 但是仍然有一些厂商的server不能通过,那么这篇文章针对百度加固 进行快速通…...

Redis 安全

Redis 安全 Redis是一个开源的,高性能的键值存储系统,它通常被用作数据库,缓存和消息代理。由于其高性能和简单的API,Redis在全球范围内被广泛使用。然而,与其他数据库系统一样,Redis的安全性也是至关重要…...

上交大与上海人工智能研究所联合推出医学多语言模型,模型数据代码开源

今天为大家介绍的是来自上海交通大学的王延峰与谢伟迪团队的一篇论文。开源的多语言医学语言模型的发展可以惠及来自不同地区、语言多样化的广泛受众。 来源丨 DrugAI、 机器人的脑电波 论文:https://www.nature.com/articles/s41467-024-52417-z MMedC&#xff1…...

网络安全:我们的安全防线

在数字化时代,网络安全已成为国家安全、经济发展和社会稳定的重要组成部分。网络安全不仅仅是技术问题,更是一个涉及政治、经济、文化、社会等多个层面的综合性问题。从宏观到微观,网络安全的重要性不言而喻。 宏观层面:国家安全与…...

理解 Python 中的 __getitem__ 方法:在自定义类中启用索引和切片操作

理解 Python 中的 __getitem__ 方法:在自定义类中启用索引和切片操作 在Python中,__getitem__是一个特殊方法,属于数据模型方法之一,它使得Python对象能够支持下标访问和切片操作。这个方法提供了一种机制,允许类的实…...

【数据结构】【线性表】【练习】反转链表

申明 该题源自力扣题库19&#xff0c;文章内容&#xff08;代码&#xff0c;图表等&#xff09;均原创&#xff0c;侵删&#xff01; 题目 给你单链表的头指针head以及两个整数left和right&#xff0c;其中left<right&#xff0c;请你反转从位置left到right的链表节点&…...

vue2+3 —— Day5/6

自定义指令 自定义指令 需求&#xff1a;当页面加载时&#xff0c;让元素获取焦点&#xff08;一进页面&#xff0c;输入框就获取焦点&#xff09; 常规操作&#xff1a;操作dom “dom元素.focus()” 获取dom元素还要用ref 和 $refs <input ref"inp" type&quo…...

汽车资讯新视角:Spring Boot技术革新

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

关于win11电脑连接wifi的同时,开启热点供其它设备连接

背景&#xff1a; 我想要捕获手机流量&#xff0c;需要让手机连接上电脑的热点。那么问题来了&#xff0c;我是笔记本电脑&#xff0c;只能连接wifi上网&#xff0c;此时我的笔记本电脑还能开启热点供手机连接吗&#xff1f;可以。 上述内容&#xff0c;涉及到3台设备&#x…...

【Apache Paimon】-- 2 -- 核心特性 (0.9.0)

目录 1、实时更新 1.1、实时大批量更新 1.2、支持定义合并引擎 1.3、支持定义更新日志生成器 2、海量数据追加处理 2.1、append table 2.2、快速查询 3、数据湖功能&#xff08;类比&#xff1a;hudi、iceberg、delta&#xff09; 3.1、支持 ACID 事务 3.2、支持 Time…...

golang对日期格式化

1.对日期格式化为 YYYY-mm-dd, 并且没有数据时&#xff0c;返回空 import ("encoding/json""time" )type DateTime time.Timetype SysRole struct {RoleId int64 gorm:"type:bigint(20);primary_key;auto_increment;角色ID;" json:&quo…...

【数据结构与算法】排序

文章目录 排序1.基本概念2.分类2.存储结构 一.插入排序1.1直接插入排序1.2折半插入排序1.3希尔排序 二.选择排序2.1简单选择排序2.2堆排序 三.交换排序3.1冒泡排序3.2快速排序 四.归并排序五.基数排序**总结** 排序 1.基本概念 排序&#xff08;sorting&#xff09;又称分类&…...

前端常见的几个包管理工具详解

文章目录 前端常见的几个包管理工具详解一、引言二、包管理工具详解1、npm1.1、npm的安装与使用 2、yarn2.1、yarn的安装与使用 3、pnpm3.1、pnpm的安装与使用 三、步骤二4、包管理工具的选择 四、总结优缺点对比 前端常见的几个包管理工具详解 一、引言 在前端开发的世界里&…...

PyAEDT:Ansys Electronics Desktop API 简介

在本文中&#xff0c;我将向您介绍 PyAEDT&#xff0c;这是一个 Python 库&#xff0c;旨在增强您对 Ansys Electronics Desktop 或 AEDT 的体验。PyAEDT 通过直接与 AEDT API 交互来简化脚本编写&#xff0c;从而允许在 Ansys 的电磁、热和机械求解器套件之间无缝集成。通过利…...

20 - 告别“无限上下文”的幻觉:大模型知识注入的“四层矩阵”与下一场权重战争

本专题系列文章共 21 篇,前 5 篇限时免费阅读 01 - 眩晕时代的定海神针:大模型落地的“第一性原理”与算力丰裕悖论 02 - 95%的AI投资打了水漂:五大错配如何扼杀你的“第二增长曲线” 03 - 从电力到AI:标准化已死,个性化永生——大模型时代的三大商业终局 04 - 你的护城…...

线束工程化实践:从设计到测试的自动化工具链与开源资源

1. 项目概述&#xff1a;从“Awesome”清单到工程化实践在开源世界里&#xff0c;“Awesome”系列清单就像一个个精心整理的藏宝图&#xff0c;指引着开发者们快速找到某个领域内的优质资源。今天要聊的这个项目fastbeast2023-netizen/awesome-harness-engineering&#xff0c;…...

Windows安全组件深度解析与优化:2025专业版系统性能调优完整指南

Windows安全组件深度解析与优化&#xff1a;2025专业版系统性能调优完整指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_m…...

3大核心模块+5步实战指南:Betaflight飞控固件深度解析与配置方案

3大核心模块5步实战指南&#xff1a;Betaflight飞控固件深度解析与配置方案 【免费下载链接】betaflight Open Source Flight Controller Firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight Betaflight作为开源飞控固件的标杆&#xff0c;为多旋翼和固定…...

模块化IC设计流程:应对复杂芯片挑战的解决方案

1. 现代IC设计面临的挑战与模块化流程的价值在当今半导体行业&#xff0c;芯片设计团队正面临前所未有的复杂挑战。随着工艺节点不断演进至5nm及以下&#xff0c;设计复杂度呈指数级增长。我曾参与的一个65nm SoC项目&#xff0c;团队最初采用传统线性设计流程&#xff0c;结果…...

告别手动计算!用C#给ArcGIS做个插件,一键搞定城市风环境评估(附源码思路)

从零构建ArcGIS风环境评估插件&#xff1a;C#实战与架构设计 在建筑规划与城市设计中&#xff0c;风环境评估往往需要反复计算迎风面指数这类专业指标。传统工作流中&#xff0c;规划师需要手动处理风向数据、编写脚本批处理建筑网格&#xff0c;不仅效率低下&#xff0c;还容易…...

绩效考核的量化迷思:如何衡量不可直接测量的技术贡献

一、量化绩效考核的困境&#xff1a;软件测试的“隐形”价值在软件行业的绩效考核体系中&#xff0c;量化指标似乎成了“公平”与“高效”的代名词。代码行数、Bug数量、测试用例覆盖率……这些清晰可统计的数字&#xff0c;被当作衡量技术人员贡献的核心标尺。然而&#xff0c…...

从怀疑到真香!2026年我亲测十多款语音识别转文字app只留这一个

开完2小时讨论会&#xff0c;你要花3小时逐句整理纪要&#xff1f;采访了3个受访者&#xff0c;你戴耳机听一天录音&#xff0c;还漏了一半核心观点&#xff1f;做方言访谈&#xff0c;转出来的文字驴唇不对马嘴&#xff0c;你还要返工重听&#xff1f; 这些磨人的痛点&#xf…...

坐北朝南教育集团

在教育行业不断发展的当下&#xff0c;家长和学生在选择教育机构时常常面临诸多困扰&#xff0c;寻找一家口碑好、教学质量高的教育集团成为了关键。坐北朝南教育集团作为辽沈地区知名的综合教育航母&#xff0c;在解决教育领域痛点方面表现出色&#xff0c;成为众多家长和学生…...

别再只调参了!搞懂MaxPool2D的padding=‘same‘和‘valid‘,让你的CNN模型效果立竿见影

别再只调参了&#xff01;搞懂MaxPool2D的paddingsame和valid&#xff0c;让你的CNN模型效果立竿见影 在构建卷积神经网络&#xff08;CNN&#xff09;时&#xff0c;许多开发者习惯性地将注意力集中在卷积核大小、激活函数选择等显性参数上&#xff0c;却常常忽略池化层中padd…...