變數與環境
如果每支請求的網址、Token 都直接寫死,換一個環境(例如從測試站換成正式站)就要一支一支改。Postman 用變數解決這個問題:把會變動的值抽出來,寫死的字串換成 {{變數名稱}},之後只要換一組變數值,整個集合就能指到不同環境。
四種變數範圍
Postman 的變數依「看得到的範圍」分成四層,範圍越小、優先權越高:
| 範圍 | 說明 | 適合放什麼 |
|---|---|---|
| Global | 整個 Postman 帳號都看得到 | 很少變動、跨專案共用的值 |
| Collection | 只有這個 Collection 內看得到 | 這個專案固定的設定,例如 API 版本號 |
| Environment | 選到這組 Environment 時才生效 | 網址、Token 這類依環境不同的值 |
| Local | 只在單次腳本執行或單一請求內有效 | 暫存用的中間值 |
同一個變數名稱如果在多個範圍都有定義,Postman 會用範圍最小、最貼近目前請求的那個值(Local > Data > Environment > Collection > Global)。
建立與切換 Environment
- 左側側欄選 Environments → Create Environment,取名例如「開發環境」。
- 新增變數,例如
baseUrl=https://api-dev.example.com、token= 開發用的測試 Token。 - 用同樣方式再建立一組「正式環境」,
baseUrl換成正式站網址。 - 請求裡把網址寫成
{{baseUrl}}/users,Header 寫Authorization: Bearer {{token}}。 - 右上角環境切換器選要套用哪一組 Environment,同一支請求就能打不同環境,不用改任何字。
用腳本動態設定變數
除了在介面手動填值,也可以在 Pre-request Script 或 Tests(Post-response)腳本裡用程式設定變數:
// Pre-request Script:設定目前時間戳記
pm.environment.set("timestamp", Date.now());
// Tests:把登入拿到的 token 存回 Environment,後續請求直接沿用
const data = pm.response.json();
pm.environment.set("token", data.token);
這個技巧常用在「先呼叫登入 API 拿 Token,後面的請求自動帶上」,見 測試腳本。
常見誤區
- 不要把正式環境的機密值(如正式站 API Key)存在會被分享出去的 Collection Variable,機密資訊建議放在 Environment,並把該 Environment 設為不匯出,或使用 Vault/Secret 型變數。
- 變數值打錯範圍(例如改到 Global 卻以為改到 Environment)是最常見的踩雷點,善用右上角眼睛圖示可以檢視目前生效的變數值。
下一步
網址與 Token 都變數化之後,接著看需要登入的 API 該怎麼設定驗證方式:身分驗證。