變量
變量類型(按照作用域划分)
- 全局變量(全局環境里面的變量)
- 集合變量(請求集合里聲明的變量)
- 自定義環境變量
- 數據變量(在runner時文件變量)
- 本地變量
變量權重類型
全局變量 < 集合變量 < 自定義環境變量 < 數據變量 < 本地變量
變量范圍
在請求構造器中使用變量
可以通過 {{variableName}} 的方式使用變量,如下圖所示:
通過數據編輯器設置變量
postman在請求構造器的右上角提供了兩處比較便捷的方式設置全局變量和自定義環境變量,分別是環境快速預覽按鈕和環境設置按鈕。如下圖所示:
環境快速預覽頁面
環境設置頁面
------
全局變量 (globals variables)
全局變量保存在postman的全局環境中,全局變量可以通過UI或腳本進行設置。
在UI中設置全局變量
- 打開方式1 : 環境快速預覽按鈕 》 Globals Tab頁的Edit按鈕
- 打開方式2 : 環境設置按鈕 》 Globals按鈕
編輯UI如下
使用腳本操作全局變量
全局變量可以在 請求前腳本和測試腳本中進行設置和獲取。
設置全局變量腳本如下:
pm.globals.set("variable_key", "variable_value");
語法 :pm.globals.set(“變量名”, “變量的值”);
獲取全局變量腳本如下:
var globals_variable = pm.globals.get("variable_key");
語法 :pm.globals.get(“變量名”);
集合變量
集合指的多個請求的集合,集合中可以有多個文件夾(文件夾中有請求)或請求。
通過postman的UI設置集合變量
打開方式:集合 … 按鈕 》 Edit 》 Variables
如下圖所示:
通過腳本操作集合變量
集合變量可以在 請求前腳本和測試腳本中進行設置和獲取。
設置集合變量腳本如下:
pm.collectionVariables.set("variable_key", "variable_value");
語法 :pm.collectionVariables.set(“變量名”, “變量的值”);
獲取集合變量腳本如下:
var collectionVariable = pm.collectionVariables.get("variable_key");
語法 :pm.collectionVariables.get(“變量名”);
自定義環境變量(environment variables)
自定義環境變量(下面稱之為 環境變量) 是postman中最常用的變量。首先,環境變量可以通過可視化UI進行編輯,導入,導出等操作,數據可視化效果好;然后,環境變量 可以設置多個環境,環境切換簡單;最后,環境變量可以通過腳本進行修改。
通過UI設置環境變量
- 打開方式1 :環境快速預覽按鈕 》 Edit
- 打開方式2 :環境設置按鈕 》 選擇需要編輯的環境 》 點擊
通過腳本操作環境變量
設置環境變量腳本
pm.environment.set("variable_key", "variable_value");
語法 :pm.environment.set(“變量名”, “變量的值”);
獲取環境變量腳本
var environmentVariable = pm.environment.get("variable_key");
語法 :pm.environment.get(“變量名”);
數據變量(Data variables)
數據變量是指運行時指定的數據文件,postman 目前支持csv和json格式的數據文件。如果我們需要對一個或者多個請求進行多數據的批量測試,那么導入預設的數據文件絕對是一個好的選擇。
導入數據文件
csv 和 json 數據格式如下:
打開方式 : 選擇集合 》 runner(是個logo) 按鈕 》 選擇請求文件夾或請求 》 選擇文件 (選擇后可以預覽數據)》 選擇請求 》RUN
運行結果如下:
可以看出有三條測試數據,這里請求自動執行了三次。
在請求前置腳本中可以操作 數據變量 data ,但是在tests腳本中則無法操作 數據變量。
通過腳本在請求前置腳本中設置數據變量
設置數據變量腳本
pm.iterationData.set("variable_key", "variable_value");
語法 :pm.iterationData.set(“變量名”, “變量的值”);
獲取數據變量腳本
var iterationData = pm.iterationData.get("variable_key");
語法 :pm.iterationData.get(“變量名”);
總結
postman 變量根據不同的測試需求應該靈活運用,一下是個人一些見解:
- 在集合中特有的變量,可以設置在集合變量中。首先,集合導出時回將集合變量一起導出(導入同理);其次可以減少環境變量的數量。
- 需要在集合間傳遞或共用的變量設置為環境變量。使用環境變量可以多個集合共用,並且導入導出簡單,可以根據情況設置多個環境。
- 一些不變的變量設置為全局變量。例如:服務器地址等
- 批量測試,多組數據測試使用數據變量。可以預先設置測試數據,批量完成測試。