上次的例子中,我們r(jià)equest url里面的主機(jī)地址我們都是用的localhost,表示本機(jī),因?yàn)槲覀兊姆?wù)器程序就運(yùn)行在本機(jī)上。而實(shí)際的測(cè)試過(guò)程中,服務(wù)器地址往往并非是在本機(jī)上的。為了能適應(yīng)各種測(cè)試環(huán)境,我們通常要使用變量
7.4.1什么是Postman中的變量
和其他變成語(yǔ)言一樣,Postman中的變量就是一個(gè)字符串標(biāo)識(shí),用來(lái)對(duì)應(yīng)一個(gè)值(在Postman中通常是一個(gè)字符串)。如果Postman的API中多處使用某個(gè)字符串的時(shí)候,我們可以使用變量代表它。這樣另外一個(gè)測(cè)試環(huán)境中該值需要修改,我們只要修改這個(gè)變量的定義一個(gè)地方就可以了。
7.4.2 Postman 環(huán)境里面的變量
Postman有個(gè)概念叫環(huán)境,一個(gè)環(huán)境里面可以配置多個(gè)變量。這些變量通暢是針對(duì)某個(gè)測(cè)試環(huán)境而言的。比如服務(wù)器地址,端口號(hào)等。如果我們實(shí)際有多套測(cè)試環(huán)境(實(shí)驗(yàn)室中有多態(tài)測(cè)試服務(wù)器,作為測(cè)試環(huán)境),可以為這些不同的測(cè)試環(huán)境,設(shè)置相應(yīng)的Postman環(huán)境。這樣我們從一個(gè)環(huán)境切換到另一個(gè)環(huán)境的時(shí)候,只需要選擇不同的Postman環(huán)境就可以了。當(dāng)然,我們Postman API中需要使用這些環(huán)境里面設(shè)置的變量,這樣環(huán)境切換后,就自動(dòng)使用新的環(huán)境中的變量的值了。
那我們?cè)趺炊x不同的環(huán)境。怎么定義環(huán)境中的變量,又怎么樣API使用環(huán)境變量的的變量呢?舉個(gè)例子,我們?nèi)绻盍藘商诇y(cè)試環(huán)境,里面各自運(yùn)行了我們的教學(xué)管理系統(tǒng)。一臺(tái)在本機(jī)上,一臺(tái)在實(shí)驗(yàn)室里面,ip地址為192.168.0.100,我們可以創(chuàng)建兩套Postman環(huán)境,里面都設(shè)置一個(gè)名為server的變量。
在Postman中創(chuàng)建環(huán)境變量如下,點(diǎn)擊界面右上角的這個(gè)齒輪圖標(biāo),選擇Manage Environments

在彈出的對(duì)話框中,點(diǎn)擊Add按鈕。在如下所示的對(duì)話框中填入環(huán)境名稱(chēng),和這個(gè)環(huán)境中所包含的變量。server表示API服務(wù)器的主機(jī)名或者IP地址

這里面有兩個(gè)值,我們實(shí)際上使用的是當(dāng)前值,這個(gè)初始值是當(dāng)你和主源共享的時(shí)候(我們之前講過(guò)Postman可以分享給其他的成員),分享的時(shí)候它使用的初始值。創(chuàng)建完成后,點(diǎn)擊右下角Add按鈕,確定添加,這樣一套環(huán)境就創(chuàng)建了。我們?nèi)绶ㄅ谥?,在?chuàng)建一套環(huán)境對(duì)應(yīng)實(shí)驗(yàn)室的那臺(tái)服務(wù)器,如下所示

這樣我們就有了兩套環(huán)境,一套叫l(wèi)ocal,另一套叫sever1

現(xiàn)在我們需要到我們的Postman API請(qǐng)求中,將所有請(qǐng)求的url中的主機(jī)名,替換為變量名為server。
我們目前開(kāi)發(fā)了4個(gè)API,全部需要替換。
替換成什么樣子呢?像下面這樣

就是講原來(lái)的localhost替換為{{server}}。這里面用雙花括號(hào)將變量名括起來(lái)。雙花括號(hào)就表示里面是一個(gè)變量。當(dāng)我們進(jìn)行測(cè)試的時(shí)候。如果我們現(xiàn)在使用本機(jī)的API服務(wù),就在這里選擇local環(huán)境,

當(dāng)我們選擇完環(huán)境之后,把鼠標(biāo)放在變量名的上面,他就會(huì)顯示當(dāng)前環(huán)境變量里面的值,主要看CURRENT

如果是使用的實(shí)驗(yàn)室的那臺(tái)機(jī)器,就選擇server1環(huán)境。Postman會(huì)使用不同環(huán)境里面的變量對(duì)應(yīng)的值。試試看,點(diǎn)擊發(fā)送 按鈕,是不是一樣可以發(fā)送請(qǐng)求?
7.4.3 Postman 全局里面的變量
有的時(shí)候,有些變量,我們可能并不想配置到很多套環(huán)境里面。因?yàn)榛旧线@就是一個(gè)固定的值,要修改的話,所有的環(huán)境里面都需要修改。比如,我們要添加的課程信息。
{
"name":"初中化學(xué)",
"desc":"初中化學(xué)課程",
"display_idx":"4"
}
這時(shí)候我們可以創(chuàng)建一個(gè)全局變量。全局變量和我們選擇的環(huán)境無(wú)關(guān)。點(diǎn)擊界面右上角的這個(gè)齒輪圖標(biāo),選擇Manage Environments

在彈出對(duì)話框中,點(diǎn)擊Globals按鈕,如下所示

然后加入全局變量名course_add其內(nèi)容如下所示

然后我們?cè)诖蜷_(kāi)添加課程的API請(qǐng)求,修改其內(nèi)容如下:

這樣,就將data參數(shù)的值用變量取代了。試試看,點(diǎn)擊發(fā)送按鈕,是不是一樣可以發(fā)送請(qǐng)求。