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

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()

http://www.kler.cn/a/400105.html

相关文章:

  • Cherno OpenGL(28 ~ 33)
  • 贪心算法入门(三)
  • 【Mysql】Mysql函数(上)
  • 基于YOLOv8深度学习的智慧课堂学生专注度检测系统(PyQt5界面+数据集+训练代码)
  • Gin 框架中间件详细介绍
  • C++学习-空指针推荐使用nullptr
  • R语言-快速对多个变量取交集
  • JavaWeb 开发面试题及参考答案
  • Python+Pyecharts重画基金净值曲线(全)
  • K8S资源限制之resources
  • 《大数据中的高级 SQL 技巧技》
  • LinuxWEB服务器的部署及优化
  • Jupyter Notebook 与 PyTorch 配置教程
  • 迷你游戏作为电子学习中的趋势工具
  • hadoop3.x 新特性
  • 学习threejs,使用TWEEN插件实现动画
  • 利用正则表达式批量修改文件名
  • Python读取prophesee相机输出的raw文件
  • java itext后端生成pdf导出
  • 企业架构框架之银行业参考架构BIAN
  • 数据分析-50-时间序列信息编码之采用正余弦循环编码
  • kafka-clients之max.block.ms
  • 【时间之外】IT人求职和创业应知【37】-AIGC私有化
  • 关于GCC内联汇编(也可以叫内嵌汇编)的简单学习
  • 基于GPU器件行为的创新分布式功能安全机制为智能驾驶保驾护航
  • 2. kafka 生产者