postman中常常出现:有两个请求,一个请求首先获取验证码或者token,再由得到的验证码或token编写body发送另一个请求。如何设置两个请求间自动关联相关数据呢?
通过环境存储全局变量
现在有两个请求如下图,生成验证码是Get方式,用来获取登录时验证码的uuid,登录是Post方式
生成验证码请求的curl:
curl --location 'http://kdtx-test.itheima.net/api/captchaImage' \
--header 'Cookie: acw_tc=76b20ff517196514788625327e31ba37c9223ba2fdebac97dc3ce76ebd57ee'
登录请求的curl:
curl --location 'http://kdtx-test.itheima.net/api/login' \
--header 'Content-Type: application/json' \
--header 'Cookie: acw_tc=76b20ff517196514788625327e31ba37c9223ba2fdebac97dc3ce76ebd57ee' \
--data '{
"username": "admin",
"password": "HM_2023_test",
"code": "2",
"uuid": "51160c63075e4d0cbaa7901a42fb0d62"
}'
1.使用Environment 设置环境,如下图所示,这里命名为QA
2.在生成验证码请求中选择事先设置好的环境QA,如下图
3.在生成验证码请求中编写代码,获取Get到的uuid并设置为QA中的环境变量uuid,如下图:
附上代码:
var jsonData = pm.response.json();
pm.environment.set("uuid", jsonData.uuid)
4.在登录请求中选中环境QA再修改body中的uuid内容即可,如下图
登录请求修改后的curl如下:
curl --location 'http://kdtx-test.itheima.net/api/login' \
--header 'Content-Type: application/json' \
--header 'Cookie: acw_tc=76b20ff517196514788625327e31ba37c9223ba2fdebac97dc3ce76ebd57ee' \
--data '{
"username": "admin",
"password": "HM_2023_test",
"code": "2",
"uuid": "{{uuid}}"
}'
最后首先发送生成验证码请求,再发送登录请求即可完成发送任务,无需复制粘贴内容,请求将自动获取上一步操作返回我们需要的参数。