Postman(10): postman實現參數化


什么時候會用到參數化

比如:一個模塊要用多組不同數據進行測試  == 驗證業務的正確性

Login模塊:正確的用戶名,密碼 ===成功;錯誤的用戶名,正確的密碼 === 失敗

postman實現參數化

在實際的接口測試中,部分參數每次發送請求時都要唯一(比如注冊), 這時可采用postman把測試數據進行參數化處理

postman設置參數的形式主要 有三種:

  • 內建變量實現
  • Pre-request Script頁簽中使用代碼實現 (推薦)
  • 外部文件的方式實現;如csv文件/json格式文件

 

一、內建變量實現

Postman有以下三種內建變量,適合一次性使用;缺點:內鍵變量不能做精確對比

{{$guid}}:生成GUID;如下圖:

 

 

 

{{$timestamp}}:當前時間戳;如下圖

可通過在線時間戳轉換工具查看時間:https://tool.lu/timestamp/

 

 

 

{{$randomInt}}:0-1000的隨機整數

 

 

 二、Pre-request Script頁簽中使用代碼實現(推薦)

Pre-request Script為執行接口請求之前要做的操作,而tests是執行完請求要 做的操作。內建變量一般放在Request里,我們也可以用代碼在Pre-request Script中實現,用代碼實現的好處是可以復用。

Pre-request Script 與test 一樣 支持javascript語法

 

 

 在Pre-request Script中實現的幾種參數化;如下圖

//獲取當前時間戳 毫秒
var now_time = Date.now()
pm.globals.set("now_time",now_time)

//guid實現
const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
.replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
pm.globals.set("guid_value",guid)

//隨機整數實現
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
pm.globals.set("randomInt_num",randomInt(8,15))

//從多個選項中選擇實現
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['','','']
pm.globals.set("people_name",getRandomValue(charsInName))


//隨機手機號實現
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
var mobile_num = `18${randomInt(100000000, 999999999)}`;
pm.globals.set("mobile_num",mobile_num)

//同步等待實現:等待5秒后開始執行
const sleep = (milliseconds) => {
const start = Date.now();
while (Date.now() <= start + milliseconds) {}
}
sleep(5000)

 

實戰示例:通過Pre-request Script編寫代碼可以在隨機參數中做斷言的精確比對

1、在Pre-request Script中編寫代碼

 

 

 2、在請求中引用變量;{{變量名}}

 

 

 3、在tests中做斷言,驗證實際結果和預期結果是否一致

 

 

 4、查看執行結果

 

 

 

三、外部文件方式實現參數化

在postman中,除了上述兩種方法實現參數化,還可以利用外部數據文件 (支持csv文件和包含json格式文本的數據)。外部數據文件目前是通過Runner 頁簽可以進行導入。

csv文件格式舉例:

csv文件要在Collection Runner中工作,第一行必須是在request中要使用的 變量名,每一行是一條用例,並表示一次迭代。

 

 

1、先准備csv文件,編碼是UTF-8;如上圖

2、在postman中引用變量名,如下圖中的百度搜索中wd的參數引入了{{search_word}},tests頁簽中做斷言引用了data.expected_result

 

 

 

 

 

 3、點擊Runner按鈕,勾選需執行的請求,在設置循環次數,導入csv文件,點擊run執行;如下圖

 

 

 4、查看執行結果

 

 

 

json文件你需要確保你的文件有鍵/值對數組。數組中的每個元素是鍵值對對 象,代表一次迭代。key作為request中要使用的變量名,value作為key的取值。

json文件實現參數化步驟:

1、准備要使用的json格式測試數據文件;

 

 2、在postman腳本中,HTTP requests中使用{{ key }}去引用,在script中使用 data. key 或者 data[“key”] 去引用;

 

 

 

 3、打開Runner窗口,點擊Data旁邊的Select File按鈕,導入jsondata參數化文件; 點擊Data File Type類型選擇application/json后,點擊Preview按鈕,檢查數據正確

 

 4、查看執行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM