postman cookie及token关联

737 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、cookie关联

1:A:银行接口登陆(cookie)

接口类型:post

URL:http://82.156.74.26:9088/pinter/bank/api/login

参数:userName=admin&password=1234 表单类型 image.png

B:银行余额查询接口(cookie)

接口类型:get

URL:http://82.156.74.26:9088/pinter/bank/api/query

参数:userName=admin 问题提示:用户不合法

image.png

2:在postman中cookie是自动关联的,但是这种自动关联是建立在多个接口一起执行的情况下,将多个接口放在postman的集合中,登陆接口产生的cookie会自动保存在postman的cookies中,其他需要cookie的接口会自动在cookies中读取cookie并发送。具体步骤如下.

将两个接口放到一个集合中,可解决用户不合法问题:

(1)新建集合 :cookie关联0221 image.png

(2)接口保存到集合:cookie关联0221 image.png

(3)重新命名接口名称,选择路径 image.png

(4)运行接口 截屏2022-02-21 下午8.27.49.png

(5)查看运行结果 image.png

(6)cookie的自动关联 image.png

二、token关联

登陆接口请求成功后,服务端返回信息中带有token的相关信息,在print这个项目中token的信息是响应中的data字段

image.png

问题:是所有token的返回的token的字段是是data吗?不会。按照项目划分。

查询余额的接口请求必须带着登陆接口所产生的token信息才能请求成功,那么查询余额的接口中,token信息在哪里,通过抓包知道在请求头信息中有一个字段叫做testfan-token,他就是请求时发起的token,值是登陆接口响应信息中的data字段,所以testfan-token和data需要关联在一起。

image.png

(1)在get接口中,将post接口中的data与teatfan-token相关联的方法,在headers中添加字段,但是由于token是实时变化的,所以需要考虑其他方法。

image.png

(2)如何将两个接口进行数据关联

--从登录接口的响应信息中提取data字段的值,并且将其设置为postman的变量 在tests的标签中,写下如下代码: //先得到整个响应信息

var jsonData = pm.response.json();

//从json数据中获取data字段的值

var token = jsonData.data

//将得到的token值设置为环境变量

pm.globals.set("token", token);

image.png

image.png

--在查询余额的接口headers中增加testfan-token字段,值直接引用第一步中所设置的postman变量

image.png

--将两个接口保存到集合