Postman

Collection 變數(Collection 專用,安全)

方法 / 屬性範圍 / 適用用途範例
pm.variables.set("key", value)只在當前 Collection 內有效儲存前一個 API 結果給下一個 APIpm.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取得/修改當前 Requestpm.request.headers.add({key:"X-Id", value:"123"});
pm.request.url取得 URLconsole.log(pm.request.url.toString());
pm.request.method取得 HTTP Methodconsole.log(pm.request.method);

Response 資訊

方法 / 屬性用途範例
pm.response取得 Responselet data = pm.response.json();
pm.response.codeHTTP Status Codepm.expect(pm.response.code).to.eql(200);
pm.response.json()解析 JSON Bodylet data = pm.response.json();
pm.response.headers.get("Header-Name")取得 Response Headerlet 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 控制下一個 Requestpostman.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);

建議使用策略

  1. 安全、只在 Collection 使用 → Collection 變數 (pm.variables)
  2. 針對不同環境(Dev/Prod) → Environment 變數 (pm.environment)
  3. 跨 Collection 共用 → Global 變數 (pm.globals),盡量少用避免污染