前言
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/