前言

预请求脚本(Pre-request Script)是与在发送请求之前执行的代码片段。适合请求的参数化,例如,要在请求标头中包含时间戳,可以使用函数返回的值设置环境变量。

执行顺序

直接引用官网的一张图说明Pre-request Script的执行时机,千言万语不如一张图。只有一个注意点,预请求脚本是用JavaScript编写的

youknow

再白话一下执行顺序(图懂可跳过)

  1. 与集合关联的预请求脚本将在集合中的每个请求之前运行;
  2. 与文件夹关联的预请求脚本将在文件夹中的每个请求之前运行;
  3. 与集合关联的测试脚本将在集合中的每个请求之后运行;
  4. 与文件夹关联的测试脚本将在文件夹中的请求之后运行;
  5. 与请求关联的预请求脚本将在发送请求之前执行;
  6. 与请求关联的测试脚本将在发送请求后执行;

实例

获取Gank.io每日数据

preview 请求的Api接口为:http://gank.io/api/day/{{year}}/{{month}}/{{day}}

Pre-request Script,输入以下内容,注意key一定要可Api地址中的一一对应,别问我为什么,任性

// 构造当前日期
var date =new Date();

// 获取年(4位,1970-xxxx)
var year = date.getFullYear();

// 获取月份(获取当前月份(0-11,0代表1月,所以要+1))
var month = date.getMonth()+1;

// 获取当前日(1-31)
var day = date.getDate();

// 把生成的数据set给postman
pm.environment.set("year", year);
pm.environment.set("month", month);
pm.environment.set("day", day);

//控制台输入一下原始日期
console.log(date)

打开Postman的控制台,以查看最终的请求,可以使用快捷键Ctrl+Alt+C,打开控制台

console

常用代码片段

//获取一个环境变量
pm.environment.get("variable_key");

//获取一个全局变量
pm.globals.get("variable_key");

//获取一个普通变量
pm.variables.get("variable_key");

//设置一个环境变量
pm.environment.set("variable_key", "variable_value");

//设置一个全局变量
pm.globals.set("variable_key", "variable_value");

//清空一个环境变量
pm.environment.unset("variable_key");

//清空一个全局变量
pm.globals.unset("variable_key");

//发送一个请求
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    if(err){
        console.log(err);
    }else{
         console.log(response.json());
    }
});


/*pm.globals*/ 
//检测全局变量是否包含某个变量---返回布尔值
pm.globals.has(variableName:String)
//获取全局变量中的某个值
pm.globals.get(variableName:String)
//为某个全局变量设置值
pm.globals.set(variableName:String, variableValue:String)
//销毁某个全局变量
pm.globals.unset(variableName:String)
//清除全局变量
pm.globals.clear()
//将全局变量以一个对象的方式全部输出
pm.globals.toObject():function → Object

/*pm.environment*/
//检测环境变量是否包含某个变量---返回布尔值
pm.environment.has(variableName:String)
//获取环境变量中的某个值
pm.environment.get(variableName:String)
//为某个环境变量设置值
pm.environment.set(variableName:String, variableValue:String)
//销毁某个环境变量
pm.environment.unset(variableName:String)
//清除环境变量
pm.environment.clear()
//将环境变量以一个对象的方式全部输出
pm.environment.toObject():function → Object


/*pm.request*/ 
//获取当前发起请求的url
pm.request.url
//以数组的方式返回当前请求中的header信息
pm.request.headers

soeasy

最后

参考连接