在開始之前,請別忘了將今天的挑戰Day 2: Collections and environments先行fork
到自己的工作區喔。
在前一天我們嘗試透過Postman來發出Request,介面簡單、操作容易,但當嘗試修改不同的參數時,都要手動去修改然後重新送出,一時半會還能夠接受,但隨著想測試的API數量變多,有時甚至會忘記剛剛到底試過哪些組合; 或是改動的參數非常多,改壞後不知道如何恢復之前能正常發送的情況,幸好Postman有提供 History
的功能,在工具左方的最下方能夠找到它。
透過歷史紀錄的輔助,可以看到過去發出了哪些請求,甚至可以指定任何請求來重新發送,也可以點擊請求後方的三個點menu,然後按Save Request
來將請求保存下來,然後儲存到指定的Collection下,那麼問題來了,什麼是Collection
?
從挑戰的標題上也可以看到兩個關鍵字Collections
以及Enviroments
:
Collection其實就是可以將很多Request預先保存起來方便管理的一個集合,以今天fork的Day 2: Collections and environments
項目來說,就是一個Collection,下面可以放資料夾(Folder)或是請求(Request)
Environment就是一堆變數(variables)的集合,每個環境可以預先定義好多組變數,讓請求可以透過切換不同環境來使用不同變數集合,實務上就可以讓測試環境與正式環境用同樣的請求來進行測試,只要切換環境就好
展開今天挑戰的Collection,打開下面資料夾Collections and enviroments,可以找到叫做echo的一個預先準備好的請求,打開文件查看今天需要完成的項目如下
Create a variable: 根據要求需要在今天URL部分的post前方用一個變數{{baseURL}}
來取代,前後有雙括號包起來的字串就會被識別成變數,當滑鼠移上去能看到提示了Unresolved Variable,那是因為我們這邊指令了要使用變數來組合URL,但該變數還沒有被定義
這時候如果直接點提示裡面的Add new variable
,並限定範圍在當前Collection的話,就能讓同一個Collection下的請求都能共用到這個變數,或是不限定範圍,開放到全域使用。
不過Add new variable
並不是今天預期要體驗的功能,根據文件我們應該透過Create an environment
來達成
Create an environment: 首先到Environments
按下+
來新增一個新的Environment,可以自行取名,但最重要的是需要在這個環境下定義需要的變數baseURL
以及其變數所代表的值
接著回到ehco這個請求,找到右上方的No Environment,因為目前沒有指定環境,所以可以點擊下拉,然後選擇剛剛所新增的環境
這時滑鼠移到URL中變數位置就能看到
調整完不要忘了對echo進行ctrl + s
來將修改存檔
Add a request: 這個步驟我們會多新增新的請求來模擬實務上可能遇到的狀況,首先將原本的echo重新命名為POST raw text,然後透過duplicate
的方式來複製一個新請求並重新命名為GET with query params
,因為是複製來的,所以新請求都是相同的內容,所以這邊也需要先修改Method為GET
,然後給定任意兩個參數,存檔後會像下圖一樣,目前有了兩個請求會呼叫不同的API,可以試試看發出請求能不能取得表示成功的狀態碼200
最後就是要透過submit
來確認今天的挑戰是否有通過,展開今日collection下Submit your solution
可以找到submit
這個請求,可以看到有兩個變數是還沒有定義的,根據文件所述,我們需要提供這兩個變數才能成功上傳
Collection id
是每個Collection都擁有且唯一的隨機字串,可以在info找到,把它複製下來等等會用到
Postamn API Key
是一個私有的API金鑰,由於submit
這個請求使用到的https://api.getpostman.com/collections
這個API屬於Postman API,原先是方便整合Postman
所提供的功能,所以有著一些限制,像是呼叫次數的上限,也因此需要提供我們自己的Postamn API Key
到Header裡的x-api-key
。到這裡管理自己當前所有的金鑰,如果目前還沒有任何可用的金鑰的話,就可以點擊Generate API Key
來建立新的一組,建立完成記得先複製起來
要小心不要流出,否則任何人拿到這個鑰匙都能用你的身分去呼叫Postman API
有了Collection id
以及Postman API Key
之後,需要用前面的步驟將變數加入Environment
,新增後會像下圖一般,這個環境用有三個變數。
最後按下submit
的Send
按鈕,如果看到測項都通過表示完成了今日挑戰
duplicate
的方式來新增請求,以及在collection裡管理多個請求的方式baseURL
,可以在測試環境下為https://test.com
,而在正式站可以是https://production.com
,只要透過環境的切換就能快速測不同站點下同一個API的功能。今天只是第三天就開始有種"我為啥不直接錄影片呢"的感覺...