在使用「Collection Runner」的時候,集合中的請求執行順序就是請求在Collection中的顯示排列順序。可是,有的時候咱們不但願請求按照這樣的方式去執行,多是執行完第一個請求,再去執行第五個請求,而後再去執行第二個請求這樣的方式;那麼在「Collection Runner」中如何去構建不一樣的執行順序呢?這篇文章將總結如何在Postman中構建不一樣的工做流。爲了配合完成這篇文章的講解,須要下面的集合文件,並在Postman中完成導入。點擊下載進行下載示例文件。json
當咱們開始運行「Collection Runner」時,全部請求都會按照咱們在主應用中看到的順序進行運行。這意味着內部的全部請求都會首先按它們所在文件夾的順序執行,而後執行集合根目錄中的全部請求。可是,咱們可使用名爲setNextRequest()
的內置函數來覆蓋此行爲。函數
顧名思義,setNextRequest()
將容許咱們指定接下來要運行的請求。post
結合上面提供的測試集合數據,導入之後,咱們會發現測試集合中有四個請求。在第一個請求的「Tests」標籤頁中包含如下代碼:測試
// Some code here postman.setNextRequest('Request 4') // Some code here
postman.setNextRequest()
是一個帶有一個參數的函數,它是接下來要運行的請求的名稱或ID。在這個例子中,咱們正在請求1的測試腳本中將請求4設置爲下一個請求。這意味着請求1完成後,執行將跳轉到請求4。若是咱們如今運行相同的集合,將會看到只有兩個請求如今運行。以下圖所示:ui
請注意,
setNextRequest()
僅適用於「Collection Runner」和Newman,其目的是運行集合,而不是發送單個請求。spa
如今咱們對setNextRequest()
的工做原理有了必定的理解,咱們能夠用它作一些更加高級的工做。因爲再也不受限於定義請求的順序,所以咱們能夠在集合內部來回跳轉請求,創建條件邏輯或跳過沒必要要的請求。可是,有一些須要咱們注意的問題:code
setNextRequest()
老是在當前腳本全部語句執行完成後才執行。這意味着若是在其餘代碼塊以前放置setNextRequest()
請求,這些代碼仍然會被執行;setNextRequest()
有一個做用域,它是集合運行的源。這意味着若是咱們運行一個集合,咱們能夠跳轉到集合中的任何請求(即便是使用相同語法的文件夾內的請求)。可是,若是運行文件夾,則setNextRequest()
的做用域限於該文件夾;也就是說咱們能夠跳轉到該文件夾內的任何請求,但不能跳轉到文件夾外的任何請求。這包括其餘文件夾內的請求以及集合中的根級別請求。參考:https://www.jellythink.com/archives/189blog