postman接口執行順序控制


接口執行順序設置

方法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(”下一個請求“)來控制是否繼續循環

 
示例:假設有2個接口的順序為:接口A-->接口B
如果我們希望執行順序為:接口A -> 接口B -> 接口A,又不想再復制一份接口A,那么
 
接口A的Teses中編寫腳本:
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。

 如果需要實現多個接口的一次循環,只需在每個接口的Tests中編寫腳本postman.setNextRequest('下一個接口名');
 
【注意】
1.如果不設終止條件,接口A執行完到接口B,接口B執行完又指向接口A,會構成死循環。該示例中if(globals["wd"])為終止條件。
2.執行前需將用來做判斷的全局變量刪除,否則第一次執行完接口A后就將終止執行。
3.為了更清楚直觀的查看運行結果,最好在每一個接口的Tests中增加一個斷言,否則難以判斷接口A執行的次數

 執行順序控制只有在collection runner或Newman里才生效


免責聲明!

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



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