目前項目涉及PC及APP端接口共用問題,后台接口給登陸后的用戶設置了一個token,接口調用時請求頭的參數值必須要動態生成,為了解決這個問題,查看Postman API文檔,配置了可以方便后端開發者的Tests腳本,如果你需要,請按下面方式配置。
用戶登陸
用戶登陸頁面的請求頭參數為固定不變,如圖所示

當填寫正確的用戶名和密碼時,系統用返回如下圖的數據,里面攜帶token的值,如圖所示

在用戶登陸測試接口頁面,在點擊Tests,在里面添加下面代碼,如圖所示:

pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
var data = JSON.parse(responseBody);
//key值
var key = '要加密的Key';
//current-timestamp
var currentTimestamp = new Date().getTime().toString();
//nonce-str
var nonceStr = getStr(32);
function getStr(len){
len = len || 32;
var chars = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var maxPos = chars.length;
var s = '';
for (let i = 0; i < len; i++) {
s += chars.charAt(Math.floor(Math.random() * maxPos));
}
return s;
}
//token
var token = data.data.token;
//拼接加密字符串
var signStr = token + currentTimestamp.substring(0,10) + nonceStr.substring(0,16) + key;
var CryptoJS = require('crypto-js');
var lpSign = CryptoJS.MD5(signStr).toString();
// 設置環境變量token,供后面的接口引用
pm.environment.set("token", data.data.token);
// 設置環境變量current-timestamp,供后面的接口引用
pm.environment.set("current-timestamp", currentTimestamp);
// 設置環境變量current-timestamp,供后面的接口引用
pm.environment.set("nonce-str", nonceStr);
// 設置環境變量current-timestamp,供后面的接口引用
pm.environment.set("lp-sign", lpSign);</pre>
配置環境變量,因為每個接口都涉及請求頭,所有我們用不用Postman中的環境變量,來實現,請求頭動態更新
步驟如下
1、 打開設置

2、 添加新環境

3、 添加環境變量

保存環境變量,在調用其它接口時,先選擇環境,如下圖所示

當Postman調用登陸接口時,會自動把缺少的環境變量值都添充完整,如下圖所示

調用其它接口時,請求頭引用環境變量,具體語法如下圖所示

這樣我們以后,調用其它接口,就不用每次都修改請求頭數據,只要引用環境變量就完美解決問題。
注:老版本Postman有問題,本測試版本為6.5.2
