變量使您能夠在 Postman 中存儲和重用值。通過將值存儲為變量,您可以在整個集合、環(huán)境、請求和測試腳本中引用它。變量可幫助您高效工作、與隊友協(xié)作以及設(shè)置動態(tài)工作流。
要創(chuàng)建和使用變量,請執(zhí)行以下操作:
變量是數(shù)據(jù)的符號表示,使您無需在任何需要的地方手動輸入即可訪問值。如果您在多個地方使用相同的值,這會很有用。通過抽象細(xì)節(jié),變量使您的請求更加靈活和可讀。
例如,如果您在多個請求中有相同的 URL,但 URL 稍后可能會更改,您可以將 URL 存儲在一個變量中,base_url并在您的請求中使用{{base_url}}. 如果 URL 發(fā)生變化,您可以更改變量值,它會反映在整個集合中,無論您在何處使用變量名稱。
同樣的原則適用于您請求中重復(fù)數(shù)據(jù)的任何部分。當(dāng)您的請求運行時,無論您在何處引用該變量,變量中存儲的任何值都將包含在內(nèi)。如果基本 URL 值為https://postman-echo.com,并且被列為使用的請求 URL 的一部分{{base_url}}/get,Postman 會將請求發(fā)送到https://postman-echo.com/get。
Postman 中的變量是鍵值對。每個變量名都代表它的鍵,因此引用變量名使您能夠訪問它的值。
您可以使用變量在請求和測試之間傳遞數(shù)據(jù),例如,如果您在集合中鏈接請求。
您可以使用環(huán)境將變量集組合在一起并與協(xié)作者共享它們,例如,如果您將一組配置詳細(xì)信息用于生產(chǎn)服務(wù)器,另一組用于測試。有關(guān)如何將環(huán)境整合到團(tuán)隊工作流中的更多信息,請參閱管理環(huán)境。
Postman 支持不同范圍的變量,允許您針對各種開發(fā)、測試和協(xié)作任務(wù)定制您的處理。Postman 中的范圍與您的請求運行的不同上下文相關(guān),不同的變量范圍適用于不同的任務(wù)。
按照從最廣泛到最狹窄的順序,這些范圍是:global、collection、environment、data和local。
如果在兩個不同的作用域中聲明了同名變量,則將使用存儲在作用域最窄的變量中的值。例如,如果有一個名為 的全局變量username和一個名為 的局部變量username,則在請求運行時將使用局部值。
Postman 將變量存儲為字符串。JSON.stringify()如果您存儲對象或數(shù)組,請在存儲之前記住它們,并JSON.parse()在檢索它們時記住它們。
除了范圍之外,全局變量和環(huán)境變量也可以按類型定義。您可以為全局變量和環(huán)境變量配置的兩種變量類型是:
對工作區(qū)(對于全局變量)或環(huán)境(對于環(huán)境變量)具有編輯訪問權(quán)限的用戶可以選擇將這些變量從默認(rèn)類型更改為機(jī)密類型。
無論您為變量配置何種類型,Postman 都會將變量作為字符串存儲在其服務(wù)器上。要了解 Postman 如何保護(hù)您的數(shù)據(jù)安全,請參閱Postman 的安全性。
要將變量類型設(shè)置為機(jī)密,請執(zhí)行以下操作:
您必須對工作區(qū)(對于全局變量)或環(huán)境(對于環(huán)境變量)具有編輯器訪問權(quán)限才能控制變量類型。編輯者可以隨時將變量類型從秘密更改為默認(rèn),反之亦然。當(dāng)您將變量的類型從 secret 更改回默認(rèn)值時,您必須通過選擇Change type進(jìn)行確認(rèn)。
所有工作區(qū)成員都可以通過選擇變量旁邊的眼睛圖標(biāo)來查看秘密變量的初始值和當(dāng)前值 。
編輯者可以通過選擇變量旁邊的眼睛圖標(biāo),然后選擇初始值來更改與協(xié)作者共享的變量的 初始值。
所有協(xié)作者都可以通過選擇眼睛圖標(biāo),然后選擇當(dāng)前值來更改變量的當(dāng)前值 。
您可以通過多種方式定義變量,具體取決于您是需要全局范圍、環(huán)境范圍還是集合范圍。
要在請求構(gòu)建器中的任何范圍內(nèi)定義變量,請執(zhí)行以下操作:
請記住刪除不再使用的變量。
要將現(xiàn)有變量的值設(shè)置為請求響應(yīng)正文中的值,請執(zhí)行以下操作:
要查看全局變量,請執(zhí)行以下操作:
您還可以通過選擇工作臺中 的環(huán)境快速查看圖標(biāo)來查看全局變量 。環(huán)境快速查看顯示所選環(huán)境以及工作區(qū)中的全局變量。您可以通過選擇值來直接編輯現(xiàn)有變量的當(dāng)前值。要添加變量,請選擇全局部分旁邊的編輯。
要添加新的全局變量,請執(zhí)行以下操作:
要編輯現(xiàn)有的全局變量,請執(zhí)行以下操作:
您還可以在腳本中定義全局變量。
要將全局變量下載為 JSON,請執(zhí)行以下操作:
要查看環(huán)境變量,請執(zhí)行以下操作:
您還可以通過在工作臺中選擇環(huán)境快速查看圖標(biāo)來檢查環(huán)境變量 。環(huán)境快速查看顯示所選環(huán)境以及工作區(qū)中的全局變量。您可以通過選擇值來直接編輯現(xiàn)有變量的當(dāng)前值。要添加變量,請選擇環(huán)境部分旁邊的編輯。
要添加新的環(huán)境變量,請執(zhí)行以下操作:
要編輯現(xiàn)有環(huán)境變量,請執(zhí)行以下操作:
如果您對環(huán)境具有編輯訪問權(quán)限,則可以添加和編輯變量。如果您對環(huán)境具有查看者訪問權(quán)限,則只能更新現(xiàn)有變量的當(dāng)前值。您可以訪問您編輯的任何變量,但您工作區(qū)中的協(xié)作者無法訪問。有關(guān)在團(tuán)隊中使用環(huán)境的更多信息,請參閱管理環(huán)境。
您還可以在腳本中定義環(huán)境變量。
您可以在創(chuàng)建集合時或之后的任何時間添加集合變量。
要為現(xiàn)有集合創(chuàng)建或編輯變量,請執(zhí)行以下操作:
如果您沒有集合的編輯訪問權(quán)限,則可以選擇請求訪問權(quán)限。如果沒有編輯者訪問權(quán)限,您將無法添加新的集合變量、更新初始值或保留值。您可以編輯當(dāng)前值以供本地使用,使用具有相同名稱的環(huán)境變量覆蓋集合變量,或請求編輯者訪問集合。
您還可以在腳本中定義集合變量。
您可以在請求腳本中以編程方式設(shè)置變量。
方法 | 用例 | 例子 |
---|---|---|
pm.globals | 用于定義全局變量。 | pm.globals.set("variable_key", "variable_value"); |
pm.collectionVariables | 用于定義集合變量。 | pm.collectionVariables.set("variable_key", "variable_value"); |
pm.environment | 用于在當(dāng)前選擇的環(huán)境中定義環(huán)境變量。 | pm.environment.set("variable_key", "variable_value"); |
pm.variables | 用于定義局部變量。 | pm.variables.set("variable_key", "variable_value"); |
unset | 您可以使用unset 刪除變量。 | pm.environment.unset("variable_key"); |
如果您沒有環(huán)境的編輯訪問權(quán)限,您的腳本代碼將影響當(dāng)前值,但不會與您的團(tuán)隊同步或共享。
有關(guān)如何在預(yù)請求或測試腳本中使用變量的說明,請參閱在腳本中使用變量。
您可以隨時添加和編輯變量。您需要為新變量包含的只是一個名稱。您可以選擇提供初始值,但也可以稍后設(shè)置,包括來自腳本。使用變量的復(fù)選框來打開或關(guān)閉它。
共享集合或環(huán)境時共享初始值。當(dāng)前值是本地的,未同步或共享。有關(guān)本地變量與同步變量的更多信息,請參閱共享和持久化數(shù)據(jù)。
您可以在整個 Postman 中使用雙花括號來引用變量。例如,要在您的請求授權(quán)設(shè)置中引用名為“用戶名”的變量,您可以使用以下語法并在名稱兩邊加上雙花括號:
{{username}}
當(dāng)您運行請求時,Postman 將解析變量并將其替換為當(dāng)前值。
例如,您可以有一個引用變量的請求 URL,如下所示:
https://postman-echo.com/get?customer_id={{cust_id}}
cust_id當(dāng)請求運行時,Postman 將發(fā)送您當(dāng)前為變量存儲的任何值。如果cust_id是 currently 3,請求將發(fā)送到以下 URL,包括查詢參數(shù):
https://postman-echo.com/get?customer_id=3
如果您想從請求主體中訪問變量,請將其引用用雙引號引起來:
{ "customer_id" : "{{cust_id}}" }
您可以在請求 URL、參數(shù)、標(biāo)頭、授權(quán)、正文和標(biāo)頭預(yù)設(shè)中使用變量。
當(dāng)您將鼠標(biāo)懸停在變量上時,Postman 會顯示其當(dāng)前狀態(tài)的概覽。當(dāng)您向請求添加變量時,Postman 會提示您輸入當(dāng)前定義的任何變量。
提示指示當(dāng)前值、范圍(以顏色突出顯示)和相關(guān)的覆蓋狀態(tài)。
如果變量未解析,Postman 會將其突出顯示為紅色。有關(guān)如何修復(fù)未解析變量的信息,請參閱修復(fù)未解析變量。
Postman 提供了您可以在請求中使用的動態(tài)變量。
動態(tài)變量的例子包括:
有關(guān)完整列表,請參閱動態(tài)變量部分。
您可以使用表示范圍級別的對象和方法來檢索腳本中變量的當(dāng)前值.get:
//access a variable at any scope including local
pm.variables.get("variable_key");
//access a global variable
pm.globals.get("variable_key");
//access a collection variable
pm.collectionVariables.get("variable_key");
//access an environment variable
pm.environment.get("variable_key");
使用pm.variables.get()to access variables in your scripts 讓您可以選擇更改變量范圍而不影響您的腳本功能。此方法將返回當(dāng)前具有最高優(yōu)先級(或最窄范圍)的任何變量。
要在預(yù)請求或測試腳本中使用動態(tài)變量pm.variables.replaceIn(),請使用,例如pm.variables.replaceIn('{{$randomFirstName}}')。
有關(guān)使用變量編寫腳本的更多詳細(xì)信息,請參閱沙盒參考。
您可以在請求運行時將變量值記錄到Postman 控制臺。
在腳本中使用以下語法來記錄變量的值:
console.log(pm.variables.get("variable_key"));
要查看結(jié)果,請選擇 頁腳中的 控制臺。您還可以通過選擇View > Show Postman Console來訪問控制臺。
Collection Runner 允許您導(dǎo)入 CSV 或 JSON 文件,并在請求和腳本中使用數(shù)據(jù)文件中的值。您不能在 Postman 中設(shè)置數(shù)據(jù)變量,因為它是從數(shù)據(jù)文件中提取的,但是您可以在腳本中訪問數(shù)據(jù)變量,例如使用pm.iterationData.get("variable_name").
有關(guān)詳細(xì)信息,請參閱使用數(shù)據(jù)文件和Sandbox API 參考。
當(dāng)您在 Postman 中編輯全局、集合和環(huán)境變量時,有一個當(dāng)前值,您可以為各個變量選擇保留或重置。您還可以選擇Persist All或Reset All以將此設(shè)置應(yīng)用于所有變量。這些使您能夠控制本地 Postman 實例中發(fā)生的事情,而與數(shù)據(jù)如何與共享您的工作區(qū)、請求、集合和環(huán)境的任何人同步無關(guān)。
創(chuàng)建或編輯變量時,可以輸入初始值和當(dāng)前值。當(dāng)您在 Postman 中創(chuàng)建一個新變量時,如果您將當(dāng)前值留空,它將自動填充初始值。如果您指定一個當(dāng)前值,它將是您實例的本地值。Persist選項允許您將當(dāng)前值推送到共享數(shù)據(jù),更新初始值以匹配當(dāng)前值。
如果您沒有環(huán)境的編輯者訪問權(quán)限,則無法編輯環(huán)境變量的初始值。您可以編輯當(dāng)前值,并且您的編輯不會對共享您工作區(qū)的任何人可見。
使用Persist可以使您的當(dāng)前值與 Postman 的服務(wù)器同步,并反映給共享您的收藏或環(huán)境的任何人。要重置當(dāng)前本地值以反映初始共享值,請使用Reset。
要保留單個值,請執(zhí)行以下操作:
您在 Postman 中的本地會話可以使用對您可見的臨時值,但不會與您的團(tuán)隊同步或共享。這使您可以使用私人憑據(jù)或?qū)嶒炛颠M(jìn)行開發(fā)和測試,而不會暴露這些細(xì)節(jié)或影響您團(tuán)隊中的其他人。
例如,您的團(tuán)隊可能擁有共享的 API 密鑰和單獨的 API 密鑰。您可以使用個人密鑰在本地進(jìn)行實驗性開發(fā)工作,但使用共享密鑰進(jìn)行團(tuán)隊協(xié)作。同樣,您可以有一個變量來表示您在本地進(jìn)行但尚未準(zhǔn)備好與團(tuán)隊共享的探索性工作。您可以稍后選擇保留本地數(shù)據(jù),以便您團(tuán)隊中的其他人也可以訪問它。
您可以使用工作臺中 的環(huán)境快速查看圖標(biāo)在線編輯當(dāng)前值 。
有關(guān)作為團(tuán)隊使用變量的更多信息,請參閱管理環(huán)境。
局部變量和數(shù)據(jù)變量具有當(dāng)前值,這些值不會在請求或收集運行之后持續(xù)存在。
未解析的變量是未在活動范圍(環(huán)境、集合或全局)中定義的變量,該范圍可用于使用它的請求。
例如,對于請求https://postman-echo.com/get?customer_id={{cust_id}},Postman 希望能夠{{cust_id}}在請求使用的環(huán)境中、請求保存的集合中或全局級別找到定義。{{cust_id}}如果 Postman在其中一個范圍內(nèi)找不到 for 的定義,它會將變量標(biāo)記為未解析。如果您發(fā)送包含未解析變量的請求,請求可能會失敗。
由于以下原因,變量可能無法解析:
當(dāng)您處理 API 請求時,Postman 會在URL 構(gòu)建器、Params選項卡、Authorization選項卡和Headers選項卡中突出顯示未解析的變量。Postman 以紅色突出顯示未解析的變量文本。有關(guān)錯誤及其解決方法的更多詳細(xì)信息,請將鼠標(biāo)懸停在未解決的變量上。
要檢查變量是否可用以及是否在請求范圍內(nèi),請執(zhí)行以下操作:
要設(shè)置因不存在而無法解析的變量,請執(zhí)行以下操作:
在腳本中以編程方式定義的變量根據(jù)變量范圍以不同方式解析。這意味著未解決的變量也將以不同的方式處理。以編程方式設(shè)置的局部變量pm.variables.set可能看起來未解析,因為它們未存儲并且僅在運行時使用,但如果正確設(shè)置和使用它們,請求仍將成功運行。以編程方式設(shè)置的環(huán)境變量、全局變量和集合變量將被保存以備后用,因此如果它們被正確設(shè)置和使用,它們將被解析。根據(jù)腳本中未解析變量的使用方式,您可能會收到400 Bad Request來自 API 的錯誤響應(yīng),或者 Postman 可能根本無法發(fā)送請求。打開控制臺幫助識別腳本中未解析的變量。
更多建議: