每日美图
一、postman功能域一览
二、环境变量分类:
- 集合变量:collection variable ,对该集合及子文件夹所有请求生效
- 环境变量:environment variable , 只有当选择了该环境时生效
- 全局变量:global variable , 在任何环境中的请求都生效(即使是no environment)
- 脚本变量:variable,仅在当前脚本中生效
变量使用方法:在URL、params或body里面使用{{变量名}}来使用环境变量,当鼠标悬浮处于该变量上可以显示该变量值。
变量优先级:环境变量>全局变量>测试集变量
注意:不能在 Pre-request Script 和 Tests 中使用{{变量名}},可以通过以下语句设置和获取使用变量:
pm.variables.set("a", "c3"); //设置局部变量,仅能在该脚本中使用
pm.environment.set("a", "e3"); //设置环境变量
pm.globals.set("a", "g3"); // 设置全局变量
pm.globals.unset("a"); //清除全局变量
var v_a = pm.variables.get("a"); // 获取局部变量
var e_a = pm.environment.get("a"); // 获取环境变量
var g_a = pm.globals.get("a"); // 获取全局变量
Postman集合、文件夹、请求中Pre-request Script和Tests的执行顺序:
- Pre-request Script和Tests的执行顺序都是:从大到小。
- 单独执行某个请求也会执行 Collection 和 Folder 中设置的脚本。
- 使用Runner运行集合时, Collection 和 Folder 中的脚本在发送每个请求时都会执行一遍。
三、在postman脚本中发送请求
在postman脚本中发送请求使用pm.sendRequest
遇到有依赖的接口时,如需要登录或需要从前一个接口的结果中获取参数时,往往需要在该请求前先发送一下所依赖的请求, 可以在Pre-request script中使用pm.sendRequest实现
1、发送GET请求
const url = 'http://115.28.108.130:5000/api/user/getToken/?appid=136425';
// 发送get请求
pm.sendRequest(url, function (err, res) {
console.log(err ? err : res.text()); // 控制台打印请求文本
});
2、发送POST请求
2.1-发送JSON请求
const regRequest={
url:'https://IP:PORT/token/v1/mssg2/getTokenByEvidence',
method:'post',//请求方法
header:{ //请求头,
"Content-type" : "application/json;charset=UTF-8",
"develop-key": "2C95492DC10711EA8C84B8599F1EF8FF",
"develop-id":"1",
"Accept-Encoding":"gzip, deflate, br","Accept":"*/*"
},
body:{
mode: 'raw', // 使用raw(原始)格式,也可以参考postman中的body部分选择不同的mode,下面对饮选择不同的参数
raw: JSON.stringify({
"targetId": "40801cf751bbf1988766c985401349f15a06d28a0aa714b16389ab1c68ffb2bc",
"evidence": "{\"level\": \"HIGH\"}",
"msspId": "40801cf751bbf1988766c985401349f15a06d28a0aa714b16389ab1c68ffb2bc",
"signAlgo": "HMAC",
"level": "HIGH",
"transId": "449959849703247872",
"appId": "67f6c99b74484c2b8bcb35473850cdd7",
"targetType": "PERSON",
"expiry": "30",
"version": "1.0",
"deviceId": "DEV_B90213F1BAD64B7AA139724161E3B339",
"signature": "qO7CuGIjXqKXlVt/DEnjzRbYM108LuVb3KI/EHpLLIk="
}) //要将JSON对象转为文本发送
}
};
pm.sendRequest(regRequest,function(err,res){
console.log(regRequest.body.msspId)
console.log(err?err:res.json());
let resReturn=res.json();
console.log(resReturn.data.token);//获取返回参数一级一级获取即可
pm.variables.set("token",resReturn.data.token); //设置脚本域有效的变量variable
})
上面样式返回参数的示例
2.2-发送表单请求
//构造一个登录请求
const loginRequest = {
url: 'http://115.28.108.130:5000/api/user/login/',
method: "POST",
body: {
mode: 'urlencoded', // 模式为表单url编码模式
urlencoded: 'name=张三&password=123456'
}
};
// 发送请求
pm.sendRequest(loginRequest, function (err, res) {
console.log(err ? err : res.text());
});
2.3-发送XML请求
//构造请求
const demoRequest = {
url: 'http://httpbin.org/post',
method: 'POST',
header: 'Content-Type: application/xml', // 请求头种指定内容格式
body: {
mode: 'raw',
raw: '<xml>hello</xml>' // 按文本格式发送xml
}
};
//发送请求
pm.sendRequest(demoRequest, function (err, res) {
console.log(err ? err : res.json());
});
版权归原作者 爱吃面条的猿 所有, 如有侵权,请联系我们删除。