0


postman使用之 Pre-request Script的使用


每日美图

一、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的执行顺序:

  1. Pre-request Script和Tests的执行顺序都是:从大到小。
  2. 单独执行某个请求也会执行 Collection 和 Folder 中设置的脚本。
  3. 使用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());
});
标签: postman 测试工具

本文转载自: https://blog.csdn.net/weixin_50003028/article/details/134157111
版权归原作者 爱吃面条的猿 所有, 如有侵权,请联系我们删除。

“postman使用之 Pre-request Script的使用”的评论:

还没有评论