在 Postman 上利用 JavaScript 在呼叫 API 前後存取和修改變數

建立區域變數

在 Postman 中可以建立 Collection(集合),就像是資料夾一樣,每個 Collection 中可以放置自己的 Variables(變數),當然每個 Workspaces(工作空間)中也可以放置 Globals Variable(全域變數),不過我們這篇主要會利用區域變數做示範。

先點選左上角的加號建立集合,這裡範例的名稱就叫做 TestCollection,點選 Vaiables ,然後在下面加入變數,這裡變數就命名為 MyData 做示範。後面可以定義 Initial value(初始值) 和 Current value(當前內容)。未來我們要呼叫 API 的內容會放在 Current value。

註:如果是 Team 的 Workspace ,Initial value 內容會共用,而 Current value 只有自己看的到。

在 API 中使用變數

點選左上角的 New 建立 API ,並把它儲存在剛剛的 Collection 下,這樣我們才可以存取到這個 Collection 中的變數。要在 API 中使用變數很簡單,只要使用兩個大括號把變數名稱括起來就可以了,像是這樣: {{變數名稱}}
這裡我們在 Body 中放入 JSON 內容,在字串內部、網址、Headers 等地方都可以使用變數。

在呼叫 API 前修改變數內容

在 Pre-request Script 區塊中使用的是 JavaScript ,我們可以使用 pm.collectionVariables.get("MyData") 取得剛剛的變數內容:
    
let myData = pm.collectionVariables.get("MyData");
console.log(`MyData: ${myData}`)
    

console.log 輸出的內容可以在下方中的 Console 區塊中看到。

註:下方 POST 有黃色驚嘆號是因為筆者是呼叫自己的測試 API ,無法驗證證書導致出現警告。

取得回應內容

這個 API 是筆者自己建立的,會回應一樣的內容,這裡 API 回應的訊息為:
    
{
    "data": "MyData1234"
}
    

我們可以在 Tests 區塊中增加以下 JavaScript 程式碼以取得 response body,並且這裡附上了拆解 JSON 和將變數重新賦值的範例程式碼:
    
console.log(`response body: ${request.data}`);

let jsonObject = pm.response.json();
let val = jsonObject["data"];
console.log(`response body data: ${val}`);

pm.collectionVariables.set("MyData", "val"); // 將回應訊息寫回變數
    




參考資料:
Postman Learning Center - Writing tests
Postman Learning Center - Writing pre-request scripts

留言