一、關聯設置
在實際的接口測試中,后一個接口經常需要用到前一個接口返回的結果,從而讓后一個接口能夠正常執行。
關聯操作步驟如下:
1.利用postman獲取上一個接口指定返回值
2.使用postman全局變量保存上一個接口的值,代碼如下:
postman.setGlobalVariable("全局變量名",str);其中前面的參數為全局變量名稱,后買你為變量
3.使用{{全局變量名}}引用
例如:設置access_token為全局變量並引用
第一步:在Tests頁簽中獲取返回值access_tokens
var data=JSON.parse(responseBody);
postman.setGlobalVariable("access_token",data.access_token);
第二步:引用變量access_token
二、內置參數化實現
1.postman自帶三個變量
{{$guid}}//生成GUID
{{$timestamp}}//當前時間戳
{{$randomInt}}//0-1000的隨機整數
2.在Pre-request Script頁簽中使用代碼實現:
Pre-request Script頁簽為執行接口請求之前要做的操作,而Tests是執行完請求要做的操作,內建變量一般放在Requests里,我們也可以用代碼在Pre-request Script頁簽中實現,好處是可以
可復用,精准斷言。
2.1時間戳參數化
Pre-request Script頁簽中輸入:
var time=Date.now();
pm.globals.set("pretime", time);
URL地址輸入:
https://www.baidu.com/s?wd={{pretime}}
Tests頁簽中輸入:
var time=pm.globals.get("pretime");
tests["case01 判斷百度標簽是否和百度搜索相同"]=responseBody.has(time)
2.2GUID參數化
Pre-request Script頁簽中輸入:
const guid='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g,()=>(Math.floor(Math.random()*16)).toString(16))
.replace(/x/g,()=>(Math.floor(Math.random()*4+8)).toString(16))
pm.globals.set("preguid", guid);
URL地址輸入:
https://www.baidu.com/s?wd={{preguid}}
Tests頁簽中輸入:
var guid=pm.globals.get("preguid");
tests["case01 判斷百度標簽是否和百度搜索相同"]=responseBody.has(guid)
2.3隨機整數參數化
2.4從多個選擇中實現參數化
2.5設置隨機手機號
三、外部參數化實現
在postman中,除了上述兩種方法實現參數化,還可以利用外部數據文件(支持csv文件和包含json格式文本的數據)。外部數據文件目前是通過Runner頁簽導入。
json文件需要確保文件中有鍵值對數組。數組中的每個元素是鍵值對對象,代表一次迭代。key作為為request中要使用的變量名,value作為keyde取值。
步驟:
1.准備測試數據(csv格式或者json格式)
csv格式數據
json格式數據
2.在postman腳本中,HTTPrequest中使用{{key}}引用,在script中使用data.key或者data["key"]取一i你用
3.打開Runner窗口,點擊Data旁邊的select File按鈕,導入參數化文件
4.點擊data file type類型后,點擊preview按鈕,檢查數據是否正確,如果不正確,調整數據文件格式或編碼
5.設置迭代次數,每次迭代都將使用數據文件中的一行,如果迭代次數超過數據文件中的行數,將重復使用最后一行
例:百度搜索數據參數化
第一步,准備參數化文件
第二步,引用參數
第三步:導入文件
第四步:查看數據是否正確
第五步:設置迭代次數和延遲時間
第六步:設置好后點擊run執行