0、寫在前面
在有些時候看官方文檔 比網(wǎng)上搜索效率要高,
比如網(wǎng)上搜一通還是不知道用法或者沒有搜索到你想要的用法的時候。
postman官方文檔 : https://learning.postman.com/docs/introduction/overview/
1、變量引用
1.1、如何在請求體中引用變量
打開官方文檔 在右上角搜索框搜索variables
點擊搜索結(jié)果中的 Using variables
在請求體中這樣引用變量 { “customer_id” : “{{cust_id}}” }
2、變量設(shè)置
2.1、測試需求場景描述:
一款軟件提供了1 2 3 三個接口供調(diào)用,為了驗證接口功能,需要對三個接口測試進(jìn)行軟件功能驗證。
而這三個接口需要順序調(diào)用,原因是后面的接口依賴前面接口的響應(yīng)結(jié)果 作為輸入。
接口1需要token作為請求頭,token為時間戳,響應(yīng)體是一個url, 這個url作為接口2的請求體。
接口2響應(yīng)體是一個字符串, 這個字符串作為接口3的請求體。
接口3需要獲取接口2的字符串響應(yīng)體+token 拼接成一個url,這個url便是這個軟件接口調(diào)用的最后結(jié)果,通過這個url即可以剛問到特定的資源。
接口1、2、3都需要token作為請求頭。
分析以上測試需求,
1、token是3個接口都需要的請求頭,因此需要在每個接口執(zhí)行前要自動獲取到時間戳作為請求頭,不然每個接口請求前都需要手工獲取時間戳作為請求體
2、接口2執(zhí)行前需要自動獲取到接口1的響應(yīng)體url作為請求體,因此需要在接口1執(zhí)行完畢后,把響應(yīng)體url設(shè)置為全局變量,這樣接口2的請求體里賣弄就可以直接引用這個變量,實現(xiàn)自動化。
接口3同理,需要接口3執(zhí)行完畢后,把響應(yīng)體字符串,設(shè)置為全局變量,這樣在接口3執(zhí)行前這個字符串全部變量就已經(jīng)存在了,可直接供接口3的請求體引用。
3、接口3需要進(jìn)行一次變量拼接,要求能在接口3執(zhí)行完畢后,自動化拼接這個url,并且通過日志可視化輸出。這樣我們就可以直接復(fù)制這個拼接的url,直接粘貼到瀏覽器地址欄進(jìn)行資源訪問。
2.2、postman實戰(zhàn)
新建1個collection 名稱是test-httpApi,含有接口1、2、3
2.2.1、全局token的處理
接口1、2、3都需要token作為請求頭。因此需要在每個接口執(zhí)行前要自動獲取到時間戳作為請求頭,不然每個接口請求前都需要手工獲取時間戳作為請求體
這個需求通過collection的Pre-request Script 實現(xiàn)。collection的Pre-request Script 會在此collection下的每個接口執(zhí)行前都會執(zhí)行,因此滿足當(dāng)前這個需求。
var currentTimeStamp=new Date().getTime();
console.log("currentTimeStamp is :"+currentTimeStamp);
pm.globals.set("Auth-Token",currentTimeStamp);
2.2.2、接口1的處理
首先是引用collection設(shè)置的全局變量Auth-Token
第二步是接口1執(zhí)行完畢后 需要把響應(yīng)體中的url設(shè)置為全局變量。
這個需求通過接口1的test腳本實現(xiàn),在test腳本中設(shè)置url全局變量uploadURL。
var jsondata=JSON.parse(responseBody);
var uploadURL=jsondata.data.location.url;
console.log("uploadURL is :"+uploadURL);
pm.globals.set("uploadURL",uploadURL);
2.2.3、接口2的處理
首先是引用collection設(shè)置的全局變量Auth-Token
第二步是引用接口1執(zhí)行完畢后設(shè)置的全局變量uploadURL 作為請求體。
第三步是接口2執(zhí)行完畢后 需要把響應(yīng)體中的字符串設(shè)置為全局變量。
這個需求通過接口2的test腳本實現(xiàn),在test腳本中設(shè)置字符串全局變量string。
var jsondata=JSON.parse(responseBody);
var string=jsondata.data;
console.log("string is :"+string);
pm.globals.set("string",string)
2.2.4、接口3的處理
首先是引用collection設(shè)置的全局變量Auth-Token
第二步是引用接口2執(zhí)行完畢后設(shè)置的全局變量string 作為請求體。
第三步是 獲取接口2的字符串響應(yīng)體+token 拼接成一個url,這個url便是這個軟件接口調(diào)用的最后結(jié)果,通過這個url即可以剛問到特定的資源。
var jsondata=JSON.parse(responseBody);
var string=jsondata.data.string;
var string=pm.globals.get("string");
var token=pm.globals.get("Auth-Token");
var URL="https://192.168.x.x:1000/?token="+token+"&string="+string;
console.log("The final URL is :"+URL);
文章來源:http://www.zghlxwxcb.cn/news/detail-582950.html
3、測試結(jié)果展示
文章來源地址http://www.zghlxwxcb.cn/news/detail-582950.html
到了這里,關(guān)于postman 自動化測試的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!