接口執行順序設置
方法1:在Run Collection中我們可以修改請求的執行順序
如下圖,這里將所有的接口放到一個Collection請求集合中, 我們可以直接拖動接口, 改變默認Collection的各接口執行順序, 也可以選擇不運行哪些請求.
方法2:通過postman.setNextRequest("要執行的接口名稱");
來手動控制請求的跳轉
除了在Run Collection時調整接口順序外,我們還可以通過postman.setNextRequest("要執行的接口名稱");
來手動控制請求的跳轉,如下圖, 新建一個Collection, 新增A, B, C, D,E5個請求, 在請求A的Tests腳本中添以下代碼:
postman.setNextRequest("D");
這樣A執行完下一個就是執行D請求,然后我們看下這5個請求在collection中的執行結果:
從上圖我們可以看出, 實際執行collection過程,執行完A請求后跳過了請求B, C, 直接跳轉到D請求.,D請求執行完成后繼續執行后面的E請求,所以最終結果只執行了A,D,E三個請求
另外如果D請求在運行時未勾選, 則只會運行A請求,結果如下圖
通常情況下,我們可以使用if判斷來控制流程跳轉, 比如, 通過判斷A請求是否成功來分別跳轉到D請求或B請求.
var jsonData = pm.response.json()
if(jsonData.code== '0')
{
postman.setNextRequest("D");
}
else
{
postman.setNextRequest("B");
}
同時,我們也可以在最后一個請求中使用postman.setNextRequest(), 跳轉到前面的請求, 來完成一個循環, 比如在E請求使用postman.setNextRequest("A"), 這樣就會無限循環的執行下去,
一般來說, 循環中一定要設置中止條件, 一般通過if判斷是否執行postman.setNextRequest(”下一個請求“)來控制是否繼續循環
if(globals["wd"] == "海賊王")
{
postman.setNextRequest("null");//是一個終止程序作用
}
tests["A接口執行"]=true;//輸出A接口執行
接口B的Teses中編寫腳本:
var str = (responseBody.match(new RegExp('<title>(.+?)</title>')))[1];
tests["B接口執行"] = true;//輸出B接口執行
postman.setGlobalVariable("wd",str);//把獲取到的返回值存為全局變量wd
postman.setNextRequest("A接口");//下一個執行接口為A接口,A接口為接口A的名稱
注:wd為接口B中的返回值,在接口B中將其定義成一個全局變量。接口A通過判斷全局變量wd是否正確進而判斷接口B是否執行。如果全局變量判斷正確,將終止執行,否則執行接口B。