上一篇文章我們學(xué)習(xí)了用例斷言淘捡,添加了斷言后一個(gè)測(cè)試用例就算完成啦案淋。如果要寫獲取另外一個(gè)城市天氣信息的測(cè)試用例险绘,你會(huì)怎么做?
可能第一反應(yīng)就是復(fù)制上面的用例腳本瓣距,把里面的 location 值換成另外一個(gè)城市的就可以了蹈丸。這樣做可以實(shí)現(xiàn)逻杖,但這里我們學(xué)習(xí)另外一種實(shí)現(xiàn)的方式荸百,用變量替換 location 的具體值,然后把具體 location 值從其他地方調(diào)用過來使用蓝翰。
Postman 中可以創(chuàng)建 Environment 變量(相當(dāng)于局部變量)和 Globals 全局變量畜份。
Environment 變量
首先爆雹,我們來學(xué)習(xí)一下創(chuàng)建和調(diào)用 Environment 變量顶别。
-
創(chuàng)建 Environment 變量。
-
調(diào)用 Environment 變量
在 Postman 中,調(diào)用參數(shù)方式是:
{{變量名稱}}
册着。其實(shí)甲捏,在用例腳本里把具體值換成參數(shù)形式來表達(dá)的過程就是參數(shù)化司顿。接下來我們運(yùn)行腳本看能否調(diào)用到 Environment 變量值大溜。
從 Body 中響應(yīng)的信息可以看出請(qǐng)求參數(shù)已經(jīng)調(diào)用到 Environment 變量值钦奋,但 Test Results 欄報(bào)錯(cuò)了朦拖。
報(bào)錯(cuò)提示的意思是說 location 變量沒有被定義璧帝。
其實(shí)斷言部分相當(dāng)于是跟 Postman 隔離開的裸弦,在斷言部分不能直接獲取 Postman 中的變量值作喘。那接下來就要寫腳本從 Postman 中獲取變量值了泞坦。代碼如下:
// 從Postman獲取變量值 var location = pm.environment.get("location"); // 打印 location 值到控制臺(tái) console.log("location的值是:" + location); var jsonData = JSON.parse(responseBody); tests["檢查城市名稱"] = jsonData.results[0].location.name === location;
打印的 log 在腳本界面是不能直接看到的,需要打開控制臺(tái) console赃梧。
console 界面授嘀。
打開控制臺(tái)后我們?cè)龠\(yùn)行一次腳本。
用例腳本斷言居然通過了锣险,說明這次在斷言部分可以調(diào)用到 Postman 中的 Environment 變量了蹄皱。我們?nèi)タ刂婆_(tái)看看 log 日志信息。
從 console 的 log 日志信息也能看出可以調(diào)用到 Postman 中的 Environment 變量芯肤。
Globals 變量
學(xué)習(xí)完 Environment 變量后巷折,我們接著來學(xué)習(xí) Globals 變量。
-
創(chuàng)建 Globals 變量
-
調(diào)用 Globals 變量
上面創(chuàng)建了 Globals 變量 test_location 崖咨,我們修改一下原來的用例腳本和斷言锻拘,為了與前面的變量名區(qū)分開來,這里把調(diào)用的變量名改成 test_location 击蹲。
接著來運(yùn)行一下腳本看能否調(diào)用到 test_location 變量芯丧。
從上面的響應(yīng)參數(shù)信息和斷言可以看出腳本和斷言部分都能調(diào)用到 Golbals 變量岭佳,另外也可以看一下控制臺(tái)打印的 log 信息。
從 console 的 log 日志信息也可以看出調(diào)用到 Postman 中的 Globals 變量禀崖。
以上就是變量的一些知識(shí)艺晴,但不管是 Environment 變量還是 Globals 變量都是在調(diào)試腳本的時(shí)候用得比較多仅财。如果批量或者重復(fù)執(zhí)行用例時(shí),需要用到大量的數(shù)據(jù),Environment 變量和 Globals 變量就很難滿足數(shù)據(jù)要求了。