postman 动态变量
背景
经常使用postman调试接口的时候都会遇到情况调用应用接口之前需要先调用一个登录接口获取token。然后使用这个token请求其他协议。
这里我们会使用到2个知识点。
- postman变量功能;
- postman前置调用脚本。
测试应用接口介绍
调试本实例 我们简单的写了一个应用,该应用有2个接口,分别是:
- 登录接口:用来获取token,例子如下:
# 请求
curl --location --request POST 'http://localhost:8080/api/login' \
--header 'Content-Type: application/json' \
--data-raw '{
"name":"admin",
"password":"e10adc3949ba59abbe56e057f20f883e"
}'
# 应答
{
"user": {
"id": 1,
"name": "admin",
"phone": "123",
"address": null,
"tokens": [],
"department": null,
"roles": []
},
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIxIn0.bFwLcjdORwcB3OhUWK1wjVe7P3gcum1xwFY2USrqo4k"
}
- 获取信息接口:需要使用token 调用
# 请求,token需要实际请求token。
curl --location --request GET 'http://localhost:8080/api/getMessage' \
--header 'token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIxIn0.bFwLcjdORwcB3OhUWK1wjVe7P3gcum1xwFY2USrqo4k'
# 应答
你已通过验证
测试详情
-
新建postman接口:
-
点击新建一个dev环境:
- 选择pre-request scripts:
// 该script是js脚本。pm对象是postman内置的对象,可以调用Postman的发送和接收能力
let userInfo = {"name":"admin","password":"e10adc3949ba59abbe56e057f20f883e"}
let requestData = {
url: "http://localhost:8080/api/login",
method: "post",
header: [
"Content-type: application/json"
],
body: {
mode: "raw",
raw: JSON.stringify(userInfo)
}
}
//调用postman发送数据
pm.sendRequest(requestData, function(err, res){
let rst = res.json();
console.log("result:",rst);
var token = rst.token; // 根据自己的返回json结构来获取
console.log("token:"+token);
// 获取到token重置环境变量的数据
pm.environment.set("token", token);
})
- 点击send发送命令
其他
- 当js有错误的时候,可以通过postman console调试,console窗口,可以在左下角调出。
网友评论