接上一小節的 Postman 批量運行用例中提到的 Collection Runner 界面有各種參數,如下圖:
運行參數如下:
- Environment:選擇運行的環境,環境主要決定環境變量的;
- Iterations: 用例迭代的次數,也就是當前選中的這些請求需要運行幾次;
- Delay:延遲,用來設置每個請求之間的運行時間(以毫米為單位),如果設置了,則一個請求運行完后會等待相應的時間才運行下一個請求;
- Log Responses:記錄響應日志,這是一種限制性的設置,默認是記錄所有請求的日志,也可以限制為只記錄錯誤日志或者完全不記錄;
- Data:選中數據文件,這是 Postman 提供的數據驅動的方式,數據針對當前 Collection 中請求中使用的變量。支持 Csv 和 Json 格式的文件;
- Keep variable values:保持變量值。如果 Collection 中有腳本重新設置環境變量或者全局變量的值,默認情況下只對當次運行有效。如果勾選了此選項,那么在腳本中重設的變量值會保存下來,也就是會直接修改 Postman 中預設的變量值;
- Run collection without using stored cookies:如果勾選此選項,運行 Collection 的時候則不會使用 Postman 的 cookie 管理器;
- Save cookies after collection run:運行后,儲存運行過程中的 cookies,此選項默認勾選。
Environment 環境
在 Postman 中不同的環境可以設置不同的環境變量值,這樣可以通過切換環境,靈活改變需要修改的變量值。
在運行 Collection 的時候,同樣可以通過切換環境來改變這些環境變量的值。
關于環境及環境變量,請參考對應的章節。
Iterations 迭代
迭代的意思其實就是運行多少次。
以下示例中,我選中了 Postman Echo 中的一個文件夾,并設置了迭代次數為 3 次:
我們看看運行結果:
設置了迭代 3 次,那么 Runner 會將選中的請求運行 3 次,在運行結果的右側,我們可以看到一個篩選器,你可以點擊對應的數值,分別查看每次運行的情況。
你還可以通過頂部橙色的按鈕Run Summary
查看運行摘要,如下圖:
在摘要界面,我們可以看到三個迭代運行的情況摘要,在此界面所有迭代中都是通過才會標記該用例為通過(也就是請求前面的方框為 綠色),可以點擊列表頂部的數字回到對應迭代的運行結果界面。
Log Responses 限制日志記錄
默認情況下,會開啟所有請求的日志記錄,但是對于一些大型的 Collection,可以關閉日志記錄以提高性能。
Log Responses 有三種選項:
- For all requests:所有請求的響應內容都回被記錄;
- For failed requests:只有至少一個斷言失敗的請求才會記錄響應日志;
- For no requests:所有請求都不會記錄日志。
Data 數據文件
這是 Postman 提供的數據驅動的功能,可以選擇 Csv 或者 Json 文件中記錄的數據。
以下面的請求為例,下圖中的請求有兩個參數path
和value
:
那么對應的文件格式如下:
Csv 文件的格式
csv 是一種以逗號為分隔符的文本文件,也可以通過 excel 編輯。Postman 支持的 csv 數據文件格式如下(頂部的 path 和 value 分別對應 Collection 請求中的變量):
path, value
post, 1
post, 2
post, 3
post, 4
Json 文件格式
Json 文件大家應該都清楚,是一種類似 Js 中對象格式(熟悉 Python 的同學可以參考字典格式)。
Postman 支持的格式為一個數組,數組中的對象包含的鍵值對為所有的變量值:
[{
"path": "post",
"value": "1",
}, {
"path": "post",
"value": "2",
}, {
"path": "post",
"value": "3",
}, {
"path": "post",
"value": "4"
}]
注意,如果數據文件中的變量數量少于 Collection 中使用的變量數量,那么 Postman 運行時會嘗試從環境( Environment )中取值。
文件上傳后,會在 Data 選項下方出現 Data File Type 選項:
提示: Iterations 迭代的數量,會根據數據的數量自動設置。比如上面我們的數據有 4 條,則會自動設置迭代數量為 4。當然,你可以修改。
Keep variable values 保持變量值
默認情況下,每次 Collection 運行結束后,都會自動清理測試過程中由代碼產生的環境變量和全局變量。
如果你之前在環境中設置了某個變量的值,就算在 Collection 中有代碼改變變量的值,在運行 Collection 后,變量的值依然時你設置的那個而不是代碼改變后的。但如果你勾選了此設置,那么你將會看到變量的值變為運行過程中代碼改的那個值。
簡單舉一個例子(以下環境和環境變量的操作請參考對應章節):
- 首先我們設置一個 test 的環境;
- 在該環境中設置一個變量 value,并設置默認值為 123 ;
- 發送一個請求,在請求的 Tests 中重設 value 的值為 xyz;
請求url為:
https://postman-echo.com/get?test={{value}}
請求的 Tests為:
pm.environment.set("value", "xyz"); // 重設 value 變量的值
pm.test("判斷請求是否包含test參數", function () {
pm.expect(pm.response.text()).to.include("test");
});
- 不勾選此選項運行一次 Collection 并觀察環境變量的值,依然是 123;
- 勾選此選項再運行一次 Collection,再觀察環境變量的值;
- 能明了否?
Run collection without using stored cookies 不使用 cookie 管理器
在我們測試會保存 Cookie 的請求時,Postman 內置的 Cookie 管理器會自動儲存請求收倒的 Cookie 信息(這功能類似瀏覽器的行為)。后續請求可以使用 Cookie 管理器中的 Cookie 信息。
比如登錄請求后會自動存儲 Cookie,而后需要登錄才能訪問的請求,會使用已存儲的 Cookie 信息,就能正常訪問。
此設置如果勾選,則會阻止 Collecion 中的請求存儲 Cookie 和從 Cookie 管理器中讀取 Cookie。也就是說,你需要自己額外處理這些 Cookie。
當然如果這些請求對應的接口并沒有使用 Cookie 機制那就不用在意此選項了。