使用 Postman 可以很方便的測試 WebApi,一些參數亦可依照待測目標不同,透過類似
config 設定檔的方式,有設定管理介面,輕鬆自在的切換到各環境之間...
Global 變數
同一個 Workspaces 下,任何地方都可以使用,不隨環境不同而變動的值,越穩定越好
新增 global 變數
點選 Environments ,再點選 Global 項目,新增 x-key-api 變數,如下圖
使用 global 變數
可在 request url 使用,下圖可以看出 x-key-api 前綴圖示為 G 開頭,代表 global
可在 request authorization 等地方使用,下圖可以看出 x-key-api
可在 request body 等地方使用,下圖可以看出 x-key-api
Environments 變數
同一個 Workspaces 下可以有一至多個 Environment,通常這類的環境變數可以是 url、
測試用帳密,可能對應 dev、stage、prod 環境。
建立 environment
可以點藍色連結或是 上方的 「+」號
點選之後,可以先設定名稱,而上方的 Globals 提醒是這個是全域的設定(所有 Collection 都可存取),
若後續還有要調整,亦可在清單中點選要修改的項目,並點選右方的「...」,就可以選擇要操作的
功能
若是要修改名稱,亦可以在點選該 environment 項目後,右方視窗的名稱後面,
有個編輯的 icon,點選下去即可再次編輯名稱
新增 environment 變數
新增 domain 變數,並輸入 current value 為 https://test.com,如下圖
使用 environment 變數
依下圖步驟設定
第1點:切換到 Collection
第2點:新增 Test Collection,先新增 request get
第3點:設定request url,這邊設定 {{domin}}/uers/,其中 {{}} 代表來自變數
第4點:來右邊切換環境,預計選擇剛剛設定的 dev
第5點:在下方的 Pre-request 頁籤,嘗試抓取 domain 變數,並且印出,可透過 pm.environment.get(key);
語法來取得 環境變數的值
若切換到dev 環境,網址列的 {{domain}} 變數就不會是「紅色」,而是「橙色」
此時點「Send」按鈕後檢視 Log,如下圖
可以看到,印出 en_domain 確實如我們設定的值,且下一列是送出的 request url 網址,也是正確
Collection 變數
這邊建立的變數,在該 collection 下所屬的 request 皆可以使用,方便管理這同一類型的
request 共用的變數
新增 collection 變數
如下圖所示
第1點:點選 Collections
第2點:選擇預計要設定的colection ,這邊是 Test collection
第3點:切到 Variables 頁籤
第4點:新增 id 變數,並且設定 current value 為 8,可透過pm.collectionVariables.get(key);
語法來取得 collection 變數的值
儲存後,接下來看如何使用
使用 collection 變數
如下圖所示設定
第1點:點選 collections 準備設定
第2點:切到要設定的 request 選項
第3點:request url 中設定使用參數 {{id}}
第4點:點選 Pre-request 頁籤,嘗試取得 id 值,並且透過 log 印出
此時點「Send」按鈕後檢視 Log,如下圖
可以看到,印出 id 確實如我們設定的值,且下一列是送出的 request url 網址,也是正確
Local 變數
這邊的變數顧名思義就是僅能在該 request 範圍內有效,這類型沒有設定介面,
須注意僅能透過撰寫script 來設定。
新增 Local 變數
如下圖所示
第1點:複製 get request
第2點:調整為 http post 動作
第3點:切到 body 頁籤,接著點選 row 為 json 並設定內容,這邊有個變數
{{local_domain}}、{{local_id}}
設定好後來看看如何使用
使用 Local 變數
如下圖所示設定
切換頁籤到 Pre-requset ,並且設定內容,其中可以透過 pm.variables.set(key,value) 來設定 local 變數值
此時點「Send」按鈕後檢視 Log,如下圖
可以看到,印出 local_domain、 local_id 確實如我們設定的值,request body 內容也有換成我們設定的值
Tips:Scope
設定變數的地方很多,若是相同名稱則會互蓋情形,故存取範圍要注意,先來看看官網的
圖示(如下),所以 environment 比 collection 優先權還大,若兩者都有相同名稱變數,會
優先採用 environment 的值。另外圖中紀載的 data 類型,雖沒有說明,但指的
就是檔案 cvs、json 等,通常會在 collection runner 或 newman 使用...
這邊實際測試 environment 比 collection 兩者狀況,先來看一下,點選 request,滑鼠停在 url id 上,
可以看到資訊視窗說明 scope 為 collection 且值為8
這時,切到 environment 新增一個同為 id 的變數,並且設定值為 77
再次切回 collection 檢視剛剛的 url id,如下圖所示,此時scope 變成 environment
送出的 url 就會是 77,故證明 environment 比 collection 優先級較高
Tips:快速修改 Environments 與 Global 變數
Posman 提供了快速修改 environment 與 Global 變數的體驗,在介面右上方,有一個
類似 眼睛的 icon,點下去後會列出目前所選取的環境內容,如下圖
其中上半部為目前所選取 env 的變數清單,下半部為 globals 的變數清單
這邊我們嘗試編輯 id 的值,修改為 33 ,並且檢視 url id 值(若要編輯該 environment 可直接點選右上方 Edit)
Tips:變數 Initial Value 與 Current Value 差異
在設定時會看到如下畫面,分別有 initial value 與 current value 欄位,兩者的差異為何?
一般使用script 語法 get 或 set variables 時,都是針對 current value 欄位,而使用
set 語法時,會將值寫到 current value 欄位,設定介面上會看到修改後的值;由此可知,
initial value 其實是用來紀錄初始值,即使過程中調整了值,還是可以讓你檢視最初的
狀態,感覺滿貼心的
沒有留言:
張貼留言