postman使用教程15-構建請求工作流(setNextRequest)


前言

postman 在收集運行時,所有請求都將按照在Postman中看到的順序運行。因此,首先按照文件夾的順序執行所有請求,然后再執行集合根目錄中的所有請求。
可以用內置函數來覆蓋此行為postman.setNextRequest(),顧名思義,此功能允許您指定下一個運行的請求。

工作流

假設有四個接口:注冊,test_demo, 登錄, 個人信息,寫到一個 Collections

接下來我要改變執行順序:注冊-登錄-個人信息-test_demo

setNextRequest

設置下一個要執行的請求

postman.setNextRequest("request_name");

在Tests中使用示例

注冊后執行登錄

“注冊”接口執行后,在Tests中寫執行寫個請求“登錄”

工作流有4個接口,指定了注冊后執行登錄

那么運行的結果是:注冊-登錄-個人信息,此時會跳過test_demo接口

也就是說當沒指定順序的時候,會按收集器寫的順序執行,如果指定了下一個請求,會執行下個請求(然后遵循前面規則按順序往下執行)

循環當前請求

setNextRequest()執行當前接口名稱,導致Postman連續運行當前請求。如果我要重復執行100次注冊,可以通過for循環實現

// 重復執行100次注冊

for (i = 0; i <= 100; i++) { 
    console.log(i);
    postman.setNextRequest("注冊");
 }

在Collection Runner運行的時候會重復執行100次登錄接口

停止執行工作流程

postman.setNextRequest(null);

關於postman.setNextRequest()以下幾點要點:

  • 指定后續請求的名稱或ID,收集運行器將負責其余的工作。
  • 它可以在預請求或測試腳本中使用。如果有多個分配,則最后一個設置值優先。
  • 如果postman.setNextRequest()請求中不存在,則收集運行器默認為線性執行並移至下一個請求

使用此工作流程時,請記住以下兩個事實:

  • postman.setNextRequest()總是在當前請求的末尾執行。這意味着,如果您將此功能放在預請求或測試腳本中任何其他代碼塊之前,則這些代碼塊仍將執行。
  • postman.setNextRequest()具有作用域,這是收集運行的來源。如果運行集合,則可以跳轉到集合中的任何請求(甚至使用相同語法的文件夾中的請求)。
    但是,如果運行文件夾,則范圍postman.setNextRequest()僅限於該文件夾。因此,您可以跳到該文件夾​​中的任何請求,但不能跳到該文件夾​​之外的任何請求。
    它包括其他文件夾中的請求,以及集合中的根級別請求

手動拖動順序

使用 postman.setNextRequest() 設置工作流實際上不太直觀,我們習慣上按看到的順序執行,在Collection區域也可以手動拖動改變順序

拖動后順序

官方文檔參考https://learning.postman.com/docs/running-collections/building-workflows/
作者-上海悠悠 blog地址 https://www.cnblogs.com/yoyoketang/


免責聲明!

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



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