Postman
Collection 變數(Collection 專用,安全)
| 方法 / 屬性 | 範圍 / 適用 | 用途 | 範例 |
|---|---|---|---|
pm.variables.set("key", value) | 只在當前 Collection 內有效 | 儲存前一個 API 結果給下一個 API | pm.variables.set("prevId", 123); |
pm.variables.get("key") | 只在 Collection 內 | 讀取 Collection 變數 | let id = pm.variables.get("prevId"); |
pm.variables.unset("key") | 只在 Collection 內 | 刪除 Collection 變數 | pm.variables.unset("prevId"); |
不會影響其他 Collection,安全
Environment 變數(針對特定 Environment,可跨 Collection)
| 方法 / 屬性 | 範圍 / 適用 | 用途 | 範例 |
|---|---|---|---|
pm.environment.set("key", value) | 當前選中 Environment | 存放不同環境的參數 | pm.environment.set("baseUrl", "https://dev.api.com"); |
pm.environment.get("key") | 當前選中 Environment | 讀取環境變數 | let url = pm.environment.get("baseUrl"); |
pm.environment.unset("key") | 當前選中 Environment | 刪除環境變數 | pm.environment.unset("baseUrl"); |
不同 Collection 使用同一 Environment 會共用變數,可能污染
Global 變數(跨 Collection,可全局共用)
| 方法 / 屬性 | 範圍 / 適用 | 用途 | 範例 |
|---|---|---|---|
pm.globals.set("key", value) | 所有 Collection 可用 | 儲存跨 Collection 的共用值 | pm.globals.set("token", "abc"); |
pm.globals.get("key") | 所有 Collection | 讀取全域變數 | let t = pm.globals.get("token"); |
pm.globals.unset("key") | 所有 Collection | 刪除全域變數 | pm.globals.unset("token"); |
任意 Collection 都能讀寫 → 高污染風險
其他共通 pm.* 方法
Request 資訊
| 方法 / 屬性 | 用途 | 範例 |
|---|---|---|
pm.request | 取得/修改當前 Request | pm.request.headers.add({key:"X-Id", value:"123"}); |
pm.request.url | 取得 URL | console.log(pm.request.url.toString()); |
pm.request.method | 取得 HTTP Method | console.log(pm.request.method); |
Response 資訊
| 方法 / 屬性 | 用途 | 範例 |
|---|---|---|
pm.response | 取得 Response | let data = pm.response.json(); |
pm.response.code | HTTP Status Code | pm.expect(pm.response.code).to.eql(200); |
pm.response.json() | 解析 JSON Body | let data = pm.response.json(); |
pm.response.headers.get("Header-Name") | 取得 Response Header | let h = pm.response.headers.get("Content-Type"); |
測試 / 驗證
| 方法 / 屬性 | 用途 | 範例 |
|---|---|---|
pm.test("描述", function(){}) | 定義驗證測試 | pm.test("status 200", ()=> pm.expect(pm.response.code).to.eql(200)); |
pm.expect(actual).to.eql(expected) | 驗證值 | pm.expect(pm.response.json().statusCode).to.eql(0); |
pm.expect.fail("訊息") | 強制 Test 失敗 | pm.expect.fail("C failed"); |
流程控制
| 方法 / 屬性 | 用途 | 範例 |
|---|---|---|
postman.setNextRequest("Request Name") | Collection Runner 控制下一個 Request | postman.setNextRequest("D"); |
throw new Error("訊息") | 中斷 Request 執行 | throw new Error("Skip D because C failed"); |
Console / Debug
| 方法 / 屬性 | 用途 | 範例 |
|---|---|---|
console.log() | 印出資訊 | console.log(pm.response.json()); |
console.warn() | 警告訊息 | console.warn("prevId not found"); |
console.error() | 錯誤訊息 | console.error("Request failed"); |
Iteration / Data
| 方法 / 屬性 | 用途 | 範例 |
|---|---|---|
pm.iterationData.get("key") | Collection Runner 單次迭代 | let username = pm.iterationData.get("user"); |
pm.info.iteration | 取得當前迭代次數 | console.log(pm.info.iteration); |
pm.info.requestName | 取得當前 Request 名稱 | console.log(pm.info.requestName); |
建議使用策略
- 安全、只在 Collection 使用 → Collection 變數 (
pm.variables) - 針對不同環境(Dev/Prod) → Environment 變數 (
pm.environment) - 跨 Collection 共用 → Global 變數 (
pm.globals),盡量少用避免污染