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