0


Postman之数据提取

系列文章目录
1.Postman之安装及汉化基本使用介绍
2.Postman之变量操作
3.Postman之数据提取
4.Postman之pm.test断言操作
5.Postman之newman

Postman之数据提取

本文主要讲解利用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 测试工具

本文转载自: https://blog.csdn.net/gahsfjshf/article/details/143839163
版权归原作者 古人诚不我欺 所有, 如有侵权,请联系我们删除。

“Postman之数据提取”的评论:

还没有评论