2021年8月8日 星期日

Postman 的 Pre-request 與 Tests

 

Postman 有兩個好物 Pre-request 與 Tests,提供我們在送出Request 前與收到 Response 後,

可以設定參數(前)或驗証回傳值(後)是否滿足期待,亦或是取 token 及測試案例設計都很方便



針對這兩者發生的位置,如下圖所示,這就是為什麼可以在前後加工

 



以下簡單介紹使用方式

Pre-request

有這項目的地方如 Collection、Folder、Request 等等,如下圖



可以在這個區塊填上 script,來試試填上變數的值,先設計 request url 及參數,如下


接著,設定 q 變數的值,如下所示,頁籤切到 pre-equest,設定參數並使用 console 印出值


開起 console 檢視相關值,可以看出實際 url 的值後面有 q=test,代表成功置換



其中,由於 pre-request 的作用是在送出 request 之前發生的,所以可以在這邊 ajax 取得

第三方相關資源,如 token 等等,可參考


Tests

看名稱很明顯就是測試,針對response 內容,可以設計一些語法來驗證是否符合期待;這邊示

範若成功送出 request 後,應該會得到一個 status code = 200 的值;如下圖,首先切到 Tests 

頁籤,並且輸入 pm.test 相關內容來驗證期待值



點選「send」按鈕後,待傳送完成,下方視窗有個 Test Results 頁籤,可以看到 PASS 綠燈,代表

測試的項目符合期待



Scope

前面有提到過,postman 很多地方都可以支援 pre-request 或 tests,如Collection、Folder、

Request 等等...,若相關區塊存在相同設定,則權重就是越裡面的越高,意即

Request > Folder > Collection ,以下透過簡單的示範來觀察這特性


透過 Collection 設定

若我們將 pre-request 內容放到 collection,則該 collection 所屬的項目且未設定 pre-request 

者,都將套用,如下圖所示


此時 new request 的 pre-request 項目沒有設定


點選送出後,可以得到以下結果

其中,原本 pre-request 內容的 search 變數,重新設定為 from collection pre-request,如下圖



所以,透過 collection 的設定確實發揮效用


透過 Request 設定

若此時在 request 再次設定,同樣的內容,我們再次設定 search 變數 為 from request only,如下圖


最後,點選送出,得到以下結果,最後的url 確實帶了正確的參數 from request only



以上就是 pre-request 與 tests 的設定,以自己的經驗,大都一開始先設定在 request 任務,等到任務

漸漸多了,且邏輯一致,就會整理到 collection 或 folder 中。



參考

沒有留言:

張貼留言