在日常開發(fā)中我們經(jīng)常以兩種情景:
- 因?yàn)榻涌诓渴鹪诓煌沫h(huán)境(一般至少是三個(gè)捧存,開發(fā)辉阶,測(cè)試和線上),所以我們?cè)跍y(cè)試接口時(shí)需要來(lái)回切換它的url磁滚,或是同樣的接口要分成至少三份
- 有些b端項(xiàng)目中對(duì)于 token 的時(shí)效性要求比較苛刻拣挪,我現(xiàn)在做的這個(gè)項(xiàng)目token的有效時(shí)間只有10分鐘擦酌,很明顯我們不可能把時(shí)間浪費(fèi)在獲取token上,但是我們?cè)诎l(fā)送請(qǐng)求的時(shí)候又要帶上有效的 token 菠劝,那么我們必然要在測(cè)試接口之前發(fā)送一個(gè)獲取 token 的請(qǐng)求
很幸運(yùn)仑氛,postman 完全可以解決以上需求,
第一個(gè)需求需要 postman 中的全局或者局部變量即可實(shí)現(xiàn)闸英,
首先打開 postman ,我們可以看到右上角那里有個(gè)眼睛按鈕介袜,以及它右側(cè)的目錄按鈕甫何,詳情如圖
建議先點(diǎn)開目錄按鈕,在里面增加作用域遇伞,否則的話辙喂,如果都掛在 global上面,容易引起變量污染, 比如我這個(gè)展示的這個(gè)項(xiàng)目名為 cigoadmin 巍耗,
那么我就增加一個(gè)作用域 cigoadmin 秋麸,那么我在里面增加的變量就不會(huì)受到其他項(xiàng)目的影響了,點(diǎn)開如下圖:
可以直接在里面增加變量炬太,當(dāng)然也可以在下拉框那里選好作用域灸蟆,然后點(diǎn)擊眼睛按鈕,在里面增加變量亲族,然后即可在該作用域下使用這個(gè)變量了炒考,如上圖所示的 url ,使用時(shí)只需要用雙大括號(hào)括住霎迫,把變量放進(jìn)去即可斋枢。這樣的話,我們只需要在里面增加三個(gè)變量知给,url,testurl,onlineurl分別代表著開發(fā)瓤帚,測(cè)試和線上環(huán)境,我們測(cè)試的時(shí)候只需要稍微修改一下即可涩赢。
至于第二個(gè)戈次,我們可以在 pre-request-script 去具體實(shí)現(xiàn)
首先,看一下 pre-request-script 是什么谒主,顧名思義朝扼,就是在執(zhí)行當(dāng)前接口之前所執(zhí)行的操作。
其次霎肯,看一下 pre-request-script 能干什么擎颖,在此之前我們需要了解到 Postman Sandbox,Postman Sandbox是一個(gè)JavaScript執(zhí)行環(huán)境观游,我們可以在編寫預(yù)請(qǐng)求腳本和測(cè)試腳本時(shí)可用搂捧。在這個(gè)沙箱中執(zhí)行我們?cè)?pre-request-script /tests 腳本部分中寫入的代碼。換句話說(shuō)就是懂缕,我們可以在這里面編寫js腳本允跑,然后這些腳本會(huì)在發(fā)送當(dāng)前接口之前執(zhí)行完畢。
最后搪柑,看一下 pre-request-script 怎么使用:
比如聋丝,后端同學(xué)需要我們每次傳參的時(shí)候都要帶上當(dāng)時(shí)的時(shí)間戳,我們完全不必每次在控制臺(tái)去打印工碾,然后在copy過(guò)去弱睦,因?yàn)槔锩媸侵С謏s的,我們直接在里面編寫js代碼即可渊额,唯一的區(qū)別就是將這個(gè)變量共享到 headers 或者 body 中所使用的代碼有些特殊而已况木,具體代碼如下:
var date = new Date();
date=Math.round(date/1000)
pm.environment.set("timestampHeader", date);
下圖為具體使用方式:
接下來(lái)就是重頭戲了:
在 pre-request-script 中編寫請(qǐng)求
下面是例子
var data = {
"user":"admin",
"psw":"123456"
}
// 獲取環(huán)境信息
pm.environment.get("url")
const echoPostRequest = {
url: 'url'+'/v1/xxx',
method: 'POST',
header:'Content-Type:application/json',
body: {
mode: 'raw',
raw: JSON.stringify(data)
}};
pm.sendRequest(echoPostRequest, function (err, res) {
console.log(res.json());
});
console 面板
postman 既然支持js的編寫垒拢,同樣也是支持js的調(diào)試的,它有 console 面板供我們查看接口信息的火惊,點(diǎn)擊左下角的 console 按鈕
即可彈出console面板
然后我們就能夠在里面看到我們剛剛打印出來(lái)的信息了求类,最后,將 token 按照上面同樣的操作將該值存在環(huán)境變量中屹耐,然后在 header 或者 body 中用大括號(hào)調(diào)取即可