為什么需要參數化?
我們在做接口測試的過程中,會遇到需要測試同一個接口使用不同的數據的情況,如果每次去一個個填寫數據就太麻煩了,這時我們就需要用到接口參數化,我們把數據單獨的存放在一個文件中管理,我們可以在postman的Runner這個模塊中設置循環運行n次請求,每次循環取不同的參數值,然后通過讀取這個文件實現所有數據的驗證
參數化步驟:
1、創建數據文件,支持數據格式文件分別為csv和json、txt等,這里我們以創建txt文檔為例
這里我們創建了一個data.txt格式的文件,文檔的第一行必須是在請求中要使用的變量名,每一行是一條用例,並表示一次迭代,一行的多個數據之間用英文逗號分隔
2、請求中對應位置替換參數變量:請求參數中用{{參數名}}替換,代碼中通過:data.參數名來進行替換,注意這里的變量名要和txt文檔中的變量名一致
3、通過Runner-Data讀取數據文件來運行:選中集合Collection->點擊Run->然后選擇需要批量運行的接口->選擇“Choose files”,從文件選擇區加載數據文件,通過點擊Data File Type選擇文件類型,點擊Preview來預覽數據,設置對應迭代次數,每次迭代都將使用你的數據文件中的一行,如果迭代次數超過數據文件中的行數,將重復執行最后一行,然后點擊運行就可以得到結果,當然,參數化以后為了驗證每個數據得到的結果需要在Tests里面進行斷言,斷言可參考postman斷言和接口返回值獲取方法
三、postman中引用外部數據文件中的參數的兩種方式
第一種:在請求中可以使用{{ keyword }}去引用
第二種:在script腳本中可以使用data. keyword 或者data[”keyword “] 去引用,一般多個接口引用一個外部數據文件中不同的參數時采用
備注:如果一定要在test里取請求參數里填的東西,如參數是JSON字符串,那就用 JSON.parse(request.data).username
如果參數是form格式的就用request.data.username
四、postman內置變量
postman內置了幾個變量可以用來直接獲取請求的值或者請求的結果:
request :獲取請求的參數,包括頭和請求體
responseHeaders :返回值的header
responseBody :返回值的body
responseCode :返回值的http code
除此之外,還有幾個內置的全局動態環境變量:
{{$guid}}: 生成一個guid
{{$timestamp}}: 獲取當前時間戳
{{$randomInt}}: 獲取一個動態0-1000隨機整數