前言
在Postman中可以編寫和執行自動化測試,使用 JavaScript 編寫基本的 API 測試,自由編寫任何用於自動化測試的測試方案。
在POSTMAN中讀取Cookie值
1. 我們需要向“ /doLogin”Web API 發送請求以接收用戶詳細信息以登入系統,但我們不能直接發送請求。
2. 我們需要發送一個登錄請求(具有有效的憑據)以接收令牌作為 Cookie 值 ,然后將其設置為“環境變量”。
3. 最后,我們將在請求標頭中使用“環境變量” 將授權的請求發送到“/doLogin”Web API。
具體流程
1. 准備正確的登錄表單,即用戶名和密碼是有效的,發送請求給Spring Security后端應用。此時請求沒有帶有令牌,后端檢查這個請求沒有帶有令牌token,就會利用 CookieCsrfTokenRepository 來生成並返回一個 Token 放進 Cookie 中並返回給發送請求的 Postman。

2. 如下面的截圖所示,我們收到了名為 'XSRF-TOKEN' 的 Cookie,這是我們的令牌,我們需要以編程方式(使用JavaScript)從 Tests 測試編輯器中讀取該令牌並將其設置為 Environment 變量,如以下快照所示:(服務端的 response 的 body 內容是 Spring Security 自動生成的登錄表單頁面,帶有 _csrf 令牌參數,這里就不截圖了)

Postman 不會將 cookie 作為響應標頭的一部分來處理,相反,postman從chrome(使用攔截器插件)接收cookie,以讀取從響應接收到的cookie,postman向我們提供了以下方法:
postman.getResponseCookie("Cookie-name")
第1行: token1 被聲明為新變量,用於保存 getResponseCookie("XSRF-TOKEN").value 方法中的值以讀取 'XSRF-TOKEN' 的 cookie 值。
第2行:如圖所示,'XSRF-TOKEN' cookie的值在兩行中被接收, 這在我們的 cookie 值中添加了一個新行字符“ <br/>”,我們需要擺脫它來接收正確的cookie值,因此我們使用 JavaScript replace函數從字符串中查找換行符,並將其替換為空字符“”。
第3行:我們使用 Postman 提供的方法來設置 token2 變量,該變量現在包含正確的 cookie 值,並將其設置為名稱為 'X-CSRF-TOKEN' 的“環境變量”,我們可以將其用作變量 {{X-CSRF-TOKEN}} 在其他請求中。
3. 編輯並保存上面的代碼后,轉到 POSTMAN -> 管理環境 -> Pentest Environment ->編輯並添加 'X-CSRF-TOKEN' 作為變量和 {{X-CSRF-TOKEN}} 作為值(注意上面截圖左上角),如下所示:

4. 轉到 "/doLogin" Web API選項卡 -> 單擊下面 Header選項 -> 打開並添加 'X-CSRF-TOKEN' 作為變量和 {{X-CSRF-TOKEN}} 作為值,如下所示:

5. 轉到 "/doLogin" Web API,再次發送 Send 請求,腳本將被執行,並且將 'X-CSRF-TOKEN' 設置為環境變量,你將獲得響應,並返回數據,就像經過身份驗證的請求一樣,如下面的截圖所示:

參考:參考1
