1. 概述
在 Postman 中,變量允許我們保存值並在不同的 API 中根據需要使用它們。我們可以通過將這些值傳遞給集合、環境或任何請求來引用這些值。這基本上使我們能夠更有效地使用這些變量來訪問存儲的值。我們還可以使用這些變量與多個團隊成員協作或在 Postman 中設置動態工作流程。
在本文中,我們將深入瞭解變量、它們的類型以及如何將它們嵌入到我們的 API 中。
2. 變量是什麼?
變量代表數據表示,讓我們在需要的地方無需手動輸入就能訪問其值。 當我們需要在多個地方使用相同的值時,它們非常有用。 常見的例子包括基本 URL、令牌和路徑變量。 此外,使用它們還使請求更具靈活性,因為更改變量會自動在所有使用這些變量的地方進行更改。
我們可以使用 Postman 將變量定義為鍵值對。 鍵定義了允許我們直接使用此鍵訪問其值的變量名。
此外,還可以使用環境來設置一組變量。 這些變量的值將取決於環境。
讓我們深入瞭解變量並理解不同變量的作用域。
2.1 變量作用域
有多個作用域讓我們可以在不同環境和不同值下處理 API 的開發和測試。以下是根據覆蓋範圍從最廣到最窄定義的變量作用域:
- 全局變量:這些變量在整個工作空間中可訪問,在 Postman 中具有最廣的作用域。它們可以在工作空間中的多個請求和集合之間使用。
- 集合變量:這些變量僅在特定集合內部可訪問。它們在集合中的所有請求中可用,並且不會因所選環境而異。
- 環境變量:這些變量允許我們根據不同的環境來限定工作範圍。它們會隨着我們所使用的環境(如本地環境、測試環境或生產環境)的變化而變化。
- 數據變量:這些類型的變量是外部的,定義了在運行集合時使用的數據集(使用 Collection Runner)。我們可以從 CSV 或 JSON 文件中提取它們。它們具有當前值,在請求或集合執行完成後不會持久化。
- 局部變量:這些變量也稱為僅通過請求腳本可訪問的臨時變量。它們的範圍僅限於當前請求或集合。執行完成後,它們將不再可用。
2.2 變量類型
全局和環境變量可以根據其類型進一步分類。以下是如何配置它們的:
- 默認類型:變量默認具有這些類型。它們以純文本形式顯示,不包含任何附加屬性。
- 秘密類型:這些變量隱藏所有工作區中的初始和當前值,類似於密碼。它們允許我們防止敏感數據的不幸泄露。
3. 定義變量及其作用域
我們可以定義多種類型的變量,並根據我們之前討論的範圍進行定義。 變量可以在請求構建器中任意作用域內定義。
首先,我們選擇文本並點擊 將其設置為變量。 完成後,我們需要將其存儲為新的變量。 然後,我們為該值輸入一個鍵,並從 Postman 中選擇可用的不同作用域:
3.1. 將響應體設置為變量
請求響應體的值也可以設置為變量,並在後續的收集中使用。這有助於在序列中運行多個請求並創建特定的流程。
首先,選擇要保存的文本,然後單擊 右鍵單擊 或 按住 Ctrl 鍵單擊 按鈕將其存儲為變量。
完成之後,需要從可能的選項中選擇相關的作用域,即環境、本地或全局,併為保存的變量命名:
3.2 全局變量定義
以下是設置 Postman 中全局變量的步驟:
- 首先,在全局變量部分點擊 添加新變量,然後輸入變量名以將其作為全局變量直接存儲。
- 另一種選擇是選擇值並選擇“全局”作為類型,從而存儲變量。
- 完成之後,請不要忘記標記
保存並確認更改。
我們還可以通過以下步驟下載全局變量並與他人共享:
- 首先,在 Postman 中選擇“全局”環境類型。
- 然後,點擊 導出 按鈕,該按鈕會將變量導出到文件。
- 準備就緒後,通過點擊
保存 在系統上存儲文件,並根據需要共享它。
3.3. 定義環境變量
以下步驟可用於在 Postman 中保存環境變量:
- 首先,單擊“添加新變量”,並輸入變量名。
- 在保存變量之前,可以選擇將變量類型設置為“環境變量”。
- 變量需要指定初始值和當前值。
- 完成上述步驟後,單擊
“保存” 以確認更改。
3.4. 定義集合變量
Postman 還提供了添加和使用集合變量的機會。
我們需要點擊並選擇側邊欄中的 Collections。 完成後,選擇 Variables 選項卡以存儲集合變量:
3.5. 腳本中定義變量
類似於在集合、環境或全局中定義變量,我們也可以在請求腳本中通過編程方式定義變量。
所有這些方法都接受 (variable_key, variable_value) 作為輸入:
- pm.globals: 此方法用於在請求腳本中定義全局變量,例如:pm.globals.set(“variable_key”, “variable_value”);
- pm.collectionVariables: 使用此方法可以定義具有“集合”作用域的變量,例如: pm.collectionVariables.set(“variable_key”, “variable_value”);
- pm.environment: 可用於定義具有當前環境作用域的環境變量,例如: pm.environment.set(“variable_key”, “variable_value”);
- pm.variables: 此方法定義具有局部/臨時作用域的局部變量,例如:pm.variables.set(“variable_key”, “variable_value”);
- unset: 此方法可用於刪除已設置的變量。 可以根據其作用域使用上述變量實例,例如:pm.environment.unset(“variable_key”, “variable_value”);
3.6. 使用腳本中的變量
我們已經通過上述方法在腳本中存儲了變量。因此,我們可以使用這些方法來檢索它們的當前值:
<em>pm.variables.get(“variable_key”)</em>: 此方法可訪問任何作用域中的變量,包括本地作用域。<em>pm.globals.get(“variable_key”)</em>: 此方法可訪問全局變量。<em>pm.collectionVariables.get(“variable_key”)</em>: 此方法可訪問集合變量。<em>pm.environment.get(“variable_key”)</em>: 此方法可訪問環境變量。
在此,我們可以使用 <em>variable_key</em> 來檢索值。該對象代表作用域級別,get() 方法檢索值。
<em>pm.variables.get()</em> 方法還提供了一種在不影響腳本功能的情況下更改變量作用域的選項。它返回當前具有最高優先級的變量。
4. 使用變量
現在,我們已經定義了不同的變量作用域,並學習瞭如何在 Postman 中存儲它們。 讓我們看看如何使用這些變量在請求路徑和主體中。
為了在 Postman 中引用變量,應使用雙花括號括住變量的名稱。 這會自動從定義的各個變量中檢索值。 這在 Postman 的所有版本中都是標準做法,並且不依賴於變量類型和作用域。
{{studentName}}此外,運行 CURL 或發送請求也會解決該變量並使用當前值更新該變量。 下面的請求 URL 引用了該變量:
http://localhost:8080/get?student_name={{studentName}}假設 studentName 是 “John”。Postman 從其變量中檢索值,併發送當前存儲的值。因此,在 Postman 上點擊上述請求後,它會自動將其轉換為請求:
http://localhost:8080/get?student_name=John5. 結論
在本教程中,我們使用 Postman 變量進行基本初始化,採用 GUI 模式。
此外,我們還了解了它們的類型和作用域。我們還考察了它們可以初始化在哪些地方,例如 URI、請求體和頭部。 顯然,這使我們能夠避免多次初始化相同的變量,從而節省時間和空間。