Postman 使用變量

2023-04-03 11:04 更新

變量使您能夠在 Postman 中存儲和重用值。通過將值存儲為變量,您可以在整個集合、環(huán)境、請求和測試腳本中引用它。變量可幫助您高效工作、與隊友協(xié)作以及設(shè)置動態(tài)工作流。

變量快速入門

要創(chuàng)建和使用變量,請執(zhí)行以下操作:

  1. 環(huán)境快速查看圖標(biāo) 在工作臺中選擇環(huán)境快速查看圖標(biāo) 。
  2. 在Globals旁邊,選擇Edit(如果尚未添加任何變量,則選擇Add )。
  3. 添加一個變量 namedmy_variable并給它一個初始值Hello.
  4. 選擇 保存圖標(biāo) Save,然后關(guān)閉環(huán)境選項卡。
  5. 打開一個新的請求選項卡并輸入https://postman-echo.com/get?var={{my_variable}}URL。將鼠標(biāo)懸停在變量名稱上以檢查變量的值和范圍。查看變量值和作用域
  6. 選擇發(fā)送并發(fā)送請求。檢查響應(yīng),確認(rèn) Postman 將變量值發(fā)送到 API。
  7. 更改環(huán)境快速查看中的值并再次發(fā)送請求。

了解變量

變量是數(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。

環(huán)境編輯器

參考變量

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。

  • 全局變量使您能夠訪問集合、請求、測試腳本和環(huán)境之間的數(shù)據(jù)。全局變量在整個工作空間中可用。由于全局變量在 Postman 中具有最廣泛的可用范圍,因此它們非常適合測試和原型制作。在以后的開發(fā)階段,使用更具體的范圍。
  • 集合變量在集合中的整個請求中都可用,并且獨立于環(huán)境。集合變量不會根據(jù)所選環(huán)境而改變。如果您使用單一環(huán)境,例如身份驗證或 URL 詳細(xì)信息,集合變量是合適的。
  • 環(huán)境變量使您能夠?qū)⒐ぷ鞣秶薅ㄔ诓煌沫h(huán)境中,例如本地開發(fā)與測試或生產(chǎn)。一次可以激活一個環(huán)境。如果您只有一個環(huán)境,使用集合變量會更有效,但環(huán)境使您能夠指定基于角色的訪問級別。
  • 數(shù)據(jù)變量來自外部 CSV 和 JSON 文件,用于定義您在使用NewmanCollection Runner運行集合時可以使用的數(shù)據(jù)集。數(shù)據(jù)變量具有當(dāng)前值,這些值不會在請求或收集運行之后持續(xù)存在。
  • 局部變量是在您的請求腳本中訪問的臨時變量。局部變量值的范圍僅限于單個請求或集合運行,并且在運行完成后不再可用。如果您需要一個值來覆蓋所有其他變量范圍,但不希望該值在執(zhí)行結(jié)束后持續(xù)存在,則局部變量是合適的。

可變范圍

如果在兩個不同的作用域中聲明了同名變量,則將使用存儲在作用域最窄的變量中的值。例如,如果有一個名為 的全局變量username和一個名為 的局部變量username,則在請求運行時將使用局部值。
Postman 將變量存儲為字符串。JSON.stringify()如果您存儲對象或數(shù)組,請在存儲之前記住它們,并JSON.parse()在檢索它們時記住它們。

變量類型

除了范圍之外,全局變量和環(huán)境變量也可以按類型定義。您可以為全局變量和環(huán)境變量配置的兩種變量類型是:

  • 默認(rèn)類型自動分配給變量。此類型顯示為純文本,沒有額外的屬性。
  • 秘密類型屏蔽所有工作區(qū)成員的初始值和當(dāng)前值,可用于防止無意中泄露敏感數(shù)據(jù),包括 API 秘密、密碼、令牌和密鑰。

對工作區(qū)(對于全局變量)或環(huán)境(對于環(huán)境變量)具有編輯訪問權(quán)限的用戶可以選擇將這些變量從默認(rèn)類型更改為機(jī)密類型。

無論您為變量配置何種類型,Postman 都會將變量作為字符串存儲在其服務(wù)器上。要了解 Postman 如何保護(hù)您的數(shù)據(jù)安全,請參閱Postman 的安全性。

要將變量類型設(shè)置為機(jī)密,請執(zhí)行以下操作:

  1. 環(huán)境快速查看圖標(biāo) 在工作臺中選擇環(huán)境快速查看圖標(biāo) 。
  2. 對于環(huán)境或全局變量,選擇編輯以打開編輯器。環(huán)境編輯器您還可以通過導(dǎo)航到環(huán)境所在的工作區(qū)并從邊欄中選擇環(huán)境,然后選擇您的環(huán)境來編輯環(huán)境。
  3. 選擇要更改的變量旁邊的默認(rèn)值以打開下拉列表,然后選擇機(jī)密以更新變量類型。
  4. 選擇 保存圖標(biāo) 保存以確認(rèn)您的更改。

從秘密變量類型更改為默認(rèn)變量類型

您必須對工作區(qū)(對于全局變量)或環(huán)境(對于環(huán)境變量)具有編輯器訪問權(quán)限才能控制變量類型。編輯者可以隨時將變量類型從秘密更改為默認(rèn),反之亦然。當(dāng)您將變量的類型從 secret 更改回默認(rèn)值時,您必須通過選擇Change type進(jìn)行確認(rèn)。

確認(rèn)秘密變量的變化

查看和更改秘密變量值

取消屏蔽變量圖標(biāo) 所有工作區(qū)成員都可以通過選擇變量旁邊的眼睛圖標(biāo)來查看秘密變量的初始值和當(dāng)前值 。

取消屏蔽變量圖標(biāo) 編輯者可以通過選擇變量旁邊的眼睛圖標(biāo),然后選擇初始值來更改與協(xié)作者共享的變量的 初始值。取消屏蔽變量圖標(biāo) 所有協(xié)作者都可以通過選擇眼睛圖標(biāo),然后選擇當(dāng)前值來更改變量的當(dāng)前值 。

定義變量

您可以通過多種方式定義變量,具體取決于您是需要全局范圍、環(huán)境范圍還是集合范圍。

要在請求構(gòu)建器中的任何范圍內(nèi)定義變量,請執(zhí)行以下操作:

  1. 選擇您需要的數(shù)據(jù),例如地址、參數(shù)、標(biāo)題或正文。選擇設(shè)置為變量。設(shè)置為變量
  2. 選擇設(shè)置為新變量。設(shè)置為變量
  3. 輸入名稱,確認(rèn)值正確,然后選擇一個范圍。選擇設(shè)置變量。設(shè)置為變量
請記住刪除不再使用的變量。

將響應(yīng)主體值設(shè)置為變量

要將現(xiàn)有變量的值設(shè)置為請求響應(yīng)正文中的值,請執(zhí)行以下操作:

  1. 選擇文本,然后右鍵單擊或按住 Control 單擊。
  2. 選擇相關(guān)范圍(環(huán)境或全局),然后選擇變量的名稱。

從文本設(shè)置變量

定義全局變量

要查看全局變量,請執(zhí)行以下操作:

  1. 在邊欄中選擇環(huán)境。
  2. 選擇全局。
您還可以通過選擇工作臺中 的環(huán)境快速查看圖標(biāo)來查看全局變量 。環(huán)境快速查看顯示所選環(huán)境以及工作區(qū)中的全局變量。您可以通過選擇值來直接編輯現(xiàn)有變量的當(dāng)前值。要添加變量,請選擇全局部分旁邊的編輯。

要添加新的全局變量,請執(zhí)行以下操作:

  1. 選擇添加新變量,然后輸入變量的名稱。
  2. 為新變量選擇類型。
  3. 添加一個Initial Value,如果您選擇,則添加一個Current Value。
  4. 選擇 保存圖標(biāo) 保存以確認(rèn)您的更改。

要編輯現(xiàn)有的全局變量,請執(zhí)行以下操作:

  1. 更改所需的變量值。
  2. 選擇 保存圖標(biāo) 保存以確認(rèn)您的更改。

您還可以在腳本中定義全局變量。

下載全局環(huán)境

要將全局變量下載為 JSON,請執(zhí)行以下操作:

  1. 在邊欄中選擇環(huán)境。
  2. 選擇全局。
  3. 選擇導(dǎo)出。
  4. 選擇保存文件的位置,然后選擇保存。

定義環(huán)境變量

要查看環(huán)境變量,請執(zhí)行以下操作:

  1. 在邊欄中選擇環(huán)境。
  2. 選擇要檢查變量的環(huán)境。
 您還可以通過在工作臺中選擇環(huán)境快速查看圖標(biāo)來檢查環(huán)境變量 。環(huán)境快速查看顯示所選環(huán)境以及工作區(qū)中的全局變量。您可以通過選擇值來直接編輯現(xiàn)有變量的當(dāng)前值。要添加變量,請選擇環(huán)境部分旁邊的編輯。

要添加新的環(huán)境變量,請執(zhí)行以下操作:

  1. 選擇添加新變量,然后輸入變量的名稱。
  2. 為新變量選擇類型。
  3. 添加一個Initial Value,如果您選擇,則添加一個Current Value。
  4. 選擇 保存圖標(biāo) 保存以確認(rèn)您的更改。

要編輯現(xiàn)有環(huán)境變量,請執(zhí)行以下操作:

  1. 更改所需的變量值。
  2. 選擇 保存圖標(biāo) 保存以確認(rèn)您的更改。
如果您對環(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í)行以下操作:

  1. 在邊欄中選擇收藏集。
  2. 選擇一個集合,然后選擇“變量”選項卡。

編輯收藏

如果您沒有集合的編輯訪問權(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ù)請求或測試腳本中使用變量的說明,請參閱在腳本中使用變量。

指定變量詳細(xì)信息

您可以隨時添加和編輯變量。您需要為新變量包含的只是一個名稱。您可以選擇提供初始值,但也可以稍后設(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ù)未解析變量。

未解決的變量

使用動態(tài)變量

Postman 提供了您可以在請求中使用的動態(tài)變量。

動態(tài)變量的例子包括:

  • {{$guid}}: v4 風(fēng)格的 GUID
  • {{$timestamp}}: 以秒為單位的當(dāng)前 Unix 時間戳
  • {{$randomInt}}: 0 到 1000 之間的隨機(jī)整數(shù)

有關(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é)果,請選擇 頁腳中的控制臺圖標(biāo) 控制臺。您還可以通過選擇View > Show Postman Console來訪問控制臺。

記錄變量

使用數(shù)據(jù)變量

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 參考。

共享和持久化數(shù)據(jù)

當(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í)行以下操作:

  1. 將鼠標(biāo)懸停在變量的當(dāng)前值上。
  2. 更多操作圖標(biāo) 選擇值旁邊的更多操作圖標(biāo) 。
  3. 選擇堅持。

您在 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) 的環(huán)境快速查看圖標(biāo)在線編輯當(dāng)前值 。

有關(guān)作為團(tuán)隊使用變量的更多信息,請參閱管理環(huán)境

局部變量和數(shù)據(jù)變量具有當(dāng)前值,這些值不會在請求或收集運行之后持續(xù)存在。

修復(fù)未解決的變量

未解析的變量是未在活動范圍(環(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ā)送包含未解析變量的請求,請求可能會失敗。

由于以下原因,變量可能無法解析:

  • 該變量不在請求的活動范圍內(nèi)
  • 變量已創(chuàng)建但更改未保存
  • 變量所在的環(huán)境不活躍
  • 變量在活動環(huán)境中關(guān)閉

當(dāng)您處理 API 請求時,Postman 會在URL 構(gòu)建器、Params選項卡、Authorization選項卡和Headers選項卡中突出顯示未解析的變量。Postman 以紅色突出顯示未解析的變量文本。有關(guān)錯誤及其解決方法的更多詳細(xì)信息,請將鼠標(biāo)懸停在未解決的變量上。

未解決的變量

要檢查變量是否可用以及是否在請求范圍內(nèi),請執(zhí)行以下操作:

  1. 選擇集合或全局鏈接之一。要打開環(huán)境,請使用 **選擇環(huán)境鏈接。
  2. 打開或?qū)ψ兞康闹颠M(jìn)行必要的更改。
  3. 選擇 保存圖標(biāo) 保存以確認(rèn)您的更改。

要設(shè)置因不存在而無法解析的變量,請執(zhí)行以下操作:

  1. 選擇添加新變量。
  2. 輸入名稱,為變量設(shè)置值,然后從下拉列表中選擇適當(dāng)?shù)姆秶ㄈ?、集合或環(huán)境)。
  3. 選擇設(shè)置變量。

設(shè)置一個未解析的變量

在腳本中以編程方式定義的變量根據(jù)變量范圍以不同方式解析。這意味著未解決的變量也將以不同的方式處理。以編程方式設(shè)置的局部變量pm.variables.set可能看起來未解析,因為它們未存儲并且僅在運行時使用,但如果正確設(shè)置和使用它們,請求仍將成功運行。以編程方式設(shè)置的環(huán)境變量、全局變量和集合變量將被保存以備后用,因此如果它們被正確設(shè)置和使用,它們將被解析。根據(jù)腳本中未解析變量的使用方式,您可能會收到400 Bad Request來自 API 的錯誤響應(yīng),或者 Postman 可能根本無法發(fā)送請求。打開控制臺幫助識別腳本中未解析的變量。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號