背景
请求业务接口时需要先调用auth应用的鉴权接口获取sign(类似其他系统登录接口返回的token),否则会提示:鉴权失败,从而导致业务接口无法使用。获取sign接口请求参数为业务接口的请求参数,所以Pre-request Script(预处理)post请求内的body为变量。
一、Pre-request Script(预处理)简介
预处理是指在发送HTTP请求之前,先执行一段脚本用于预处理请求,用来处理和获取所需要的数据。
二、Pre-request Script(预处理)使用
1、获取当前时间
//获取当前时间 const moment = require('moment'); var date =moment().format('YYYY-MM-DD HH:mm:ss'); pm.globals.set('newdate',date); console.log(date); 输出值:
2、获取时间戳
//获取时间戳 var tidtime =Math.round(new Date().getTime()); pm.globals.set('newtime',tidtime); console.log(tidtime); 输出值:
三、Pre-request Script(预处理)发送post请求
1、定义post请求url
//鉴权地址
const getSignUrl = 'xxx/sign/getSign';2、获取业务接口的参数,做为鉴权接口的参数
// 获取请求体中的数据,字典 let raw = pm.request.body.raw; // 把请求参数转成JSON let requestBody = JSON.parse(raw); // 请求参数拼接 let paramStr = {}; paramStr ['appId'] = requestBody.appId; paramStr ['certiId'] = requestBody.certiId; paramStr ['token'] = requestBody.token; paramStr ['tid'] = requestBody.tid; paramStr ['data'] = requestBody.data; paramStr ['date'] = date; console.log(paramStr); 3、鉴权接口实际请求参数 const getSignRequestData = { url: getSignUrl, method: 'POST', header: { 'Content-Type': 'application/json' }, body: { mode: 'raw', raw:JSON.stringify(paramStr) } };4、发送post请求
//发送post请求 pm.sendRequest(getSignRequestData, function (err, response) { if (err) { console.error(err); return; } //输出鉴权接口返回值 console.log(response.json());if (response.json().payload.status = "true") { // 如果请求成功获取sign值 pm.environment.set('sign',response.json().payload.sign); } }); 5、业务接口使用获取到的sign值 引用方式 —— {{sign}}
结论
经过以上操作,业务接口可以直接发送post请求,每次请求的时间和sign值在Pre-request Script(预处理)内都会预先处理好。
标签:Pre,请求,Script,接口,sign,post,paramStr,鉴权,postman From: https://www.cnblogs.com/chen-cherry/p/17805882.html