通過postman的Pre-request Script 可以實現(xiàn)參數(shù)驗簽。
Pre-request Script是基于 Node.js 的強大運行時,它允許我們向請求和集合中添加動態(tài)行為。允許我們編寫 API 測試、構(gòu)建可以包含動態(tài)參數(shù)的請求、在請求之間傳遞數(shù)據(jù)等等。您可以添加兩種情況下的 JavaScript 代碼:
- 在請求發(fā)送到服務(wù)器之前,在“Pre-request Script”選項卡中編寫預(yù)請求腳本;
- 收到響應(yīng)后,在 “ Test”選項卡中編寫測試腳本。
參考文檔: https://postman.org.cn/writing-scripts/intro-to-scripts/
image.png
完整腳本:
const uuid = require("uuid")
function getTimestamp(){
var time=new Date().getTime();
pm.environment.set("time", time);
return time;
}
function getRandom(){
var random= uuid.v4().replace(/-/g, '');
pm.environment.set("uuid", random);
return random;
}
function getSign(){
var random = getRandom();
var body = pm.request.body.raw;
var str= body+ random;
var sign = CryptoJS.MD5(str).toString().toLowerCase();
sign = sign.slice(0, 10) + random + sign.slice(-22);
console.log(sign);
console.log(random);
console.log(time);
return sign;
}
pm.request.headers.add({key: 'x-sign',value: getSign()});
pm.request.headers.add({key: 'x-source',value: 'postman'});
//將其他header添加到請求頭
Object.keys(request.headers).forEach(key => {
console.log(key);
pm.request.headers.add({key: key,value:request.headers[key]});
});
Pre-request Script | 外部庫的使用
https://juejin.cn/post/7214005088510394428
header操作
// 添加新 header
pm.request.headers.add({key: 'Accept-Encoding',value: 'gzip'});
// 添加或修改已存在 header
pm.request.headers.upsert({key: 'Connection',value: 'close'});
// 移除 header
pm.request.headers.remove('User-Agent')
獲取body
pm.request.body.raw
獲取body中的password參數(shù)
var body = pm.request.body.raw
var body_json = JSON.parse(body)
pwd = body_json["password"]
console.log(pwd) 在console打印pwd參數(shù)