接上一小節(jié)的 Postman 批量運(yùn)行用例中提到的 Collection Runner 界面有各種參數(shù)窄做,如下圖:
運(yùn)行參數(shù)如下:
- Environment:選擇運(yùn)行的環(huán)境,環(huán)境主要決定環(huán)境變量的;
- Iterations: 用例迭代的次數(shù)绒瘦,也就是當(dāng)前選中的這些請(qǐng)求需要運(yùn)行幾次闭树;
- Delay:延遲,用來設(shè)置每個(gè)請(qǐng)求之間的運(yùn)行時(shí)間(以毫米為單位)丰歌,如果設(shè)置了姨蟋,則一個(gè)請(qǐng)求運(yùn)行完后會(huì)等待相應(yīng)的時(shí)間才運(yùn)行下一個(gè)請(qǐng)求;
- Log Responses:記錄響應(yīng)日志立帖,這是一種限制性的設(shè)置眼溶,默認(rèn)是記錄所有請(qǐng)求的日志,也可以限制為只記錄錯(cuò)誤日志或者完全不記錄晓勇;
- Data:選中數(shù)據(jù)文件堂飞,這是 Postman 提供的數(shù)據(jù)驅(qū)動(dòng)的方式,數(shù)據(jù)針對(duì)當(dāng)前 Collection 中請(qǐng)求中使用的變量绑咱。支持 Csv 和 Json 格式的文件绰筛;
- Keep variable values:保持變量值。如果 Collection 中有腳本重新設(shè)置環(huán)境變量或者全局變量的值描融,默認(rèn)情況下只對(duì)當(dāng)次運(yùn)行有效铝噩。如果勾選了此選項(xiàng),那么在腳本中重設(shè)的變量值會(huì)保存下來窿克,也就是會(huì)直接修改 Postman 中預(yù)設(shè)的變量值薄榛;
- Run collection without using stored cookies:如果勾選此選項(xiàng),運(yùn)行 Collection 的時(shí)候則不會(huì)使用 Postman 的 cookie 管理器让歼;
- Save cookies after collection run:運(yùn)行后敞恋,儲(chǔ)存運(yùn)行過程中的 cookies,此選項(xiàng)默認(rèn)勾選谋右。
Environment 環(huán)境
在 Postman 中不同的環(huán)境可以設(shè)置不同的環(huán)境變量值硬猫,這樣可以通過切換環(huán)境,靈活改變需要修改的變量值改执。
在運(yùn)行 Collection 的時(shí)候啸蜜,同樣可以通過切換環(huán)境來改變這些環(huán)境變量的值。
關(guān)于環(huán)境及環(huán)境變量辈挂,請(qǐng)參考對(duì)應(yīng)的章節(jié)衬横。
Iterations 迭代
迭代的意思其實(shí)就是運(yùn)行多少次。
以下示例中终蒂,我選中了 Postman Echo 中的一個(gè)文件夾蜂林,并設(shè)置了迭代次數(shù)為 3 次:
我們看看運(yùn)行結(jié)果:
設(shè)置了迭代 3 次遥诉,那么 Runner 會(huì)將選中的請(qǐng)求運(yùn)行 3 次,在運(yùn)行結(jié)果的右側(cè)噪叙,我們可以看到一個(gè)篩選器矮锈,你可以點(diǎn)擊對(duì)應(yīng)的數(shù)值,分別查看每次運(yùn)行的情況睁蕾。
你還可以通過頂部橙色的按鈕Run Summary
查看運(yùn)行摘要苞笨,如下圖:
在摘要界面,我們可以看到三個(gè)迭代運(yùn)行的情況摘要子眶,在此界面所有迭代中都是通過才會(huì)標(biāo)記該用例為通過(也就是請(qǐng)求前面的方框?yàn)?綠色)瀑凝,可以點(diǎn)擊列表頂部的數(shù)字回到對(duì)應(yīng)迭代的運(yùn)行結(jié)果界面。
Log Responses 限制日志記錄
默認(rèn)情況下臭杰,會(huì)開啟所有請(qǐng)求的日志記錄粤咪,但是對(duì)于一些大型的 Collection,可以關(guān)閉日志記錄以提高性能硅卢。
Log Responses 有三種選項(xiàng):
- For all requests:所有請(qǐng)求的響應(yīng)內(nèi)容都回被記錄;
- For failed requests:只有至少一個(gè)斷言失敗的請(qǐng)求才會(huì)記錄響應(yīng)日志藏杖;
- For no requests:所有請(qǐng)求都不會(huì)記錄日志将塑。
Data 數(shù)據(jù)文件
這是 Postman 提供的數(shù)據(jù)驅(qū)動(dòng)的功能,可以選擇 Csv 或者 Json 文件中記錄的數(shù)據(jù)蝌麸。
以下面的請(qǐng)求為例点寥,下圖中的請(qǐng)求有兩個(gè)參數(shù)path
和value
:
那么對(duì)應(yīng)的文件格式如下:
Csv 文件的格式
csv 是一種以逗號(hào)為分隔符的文本文件,也可以通過 excel 編輯来吩。Postman 支持的 csv 數(shù)據(jù)文件格式如下(頂部的 path 和 value 分別對(duì)應(yīng) Collection 請(qǐng)求中的變量):
path, value
post, 1
post, 2
post, 3
post, 4
Json 文件格式
Json 文件大家應(yīng)該都清楚敢辩,是一種類似 Js 中對(duì)象格式(熟悉 Python 的同學(xué)可以參考字典格式)。
Postman 支持的格式為一個(gè)數(shù)組弟疆,數(shù)組中的對(duì)象包含的鍵值對(duì)為所有的變量值:
[{
"path": "post",
"value": "1",
}, {
"path": "post",
"value": "2",
}, {
"path": "post",
"value": "3",
}, {
"path": "post",
"value": "4"
}]
注意戚长,如果數(shù)據(jù)文件中的變量數(shù)量少于 Collection 中使用的變量數(shù)量,那么 Postman 運(yùn)行時(shí)會(huì)嘗試從環(huán)境( Environment )中取值怠苔。
文件上傳后同廉,會(huì)在 Data 選項(xiàng)下方出現(xiàn) Data File Type 選項(xiàng):
提示: Iterations 迭代的數(shù)量迫肖,會(huì)根據(jù)數(shù)據(jù)的數(shù)量自動(dòng)設(shè)置攒驰。比如上面我們的數(shù)據(jù)有 4 條蟆湖,則會(huì)自動(dòng)設(shè)置迭代數(shù)量為 4。當(dāng)然玻粪,你可以修改诬垂。
Keep variable values 保持變量值
默認(rèn)情況下饥瓷,每次 Collection 運(yùn)行結(jié)束后剥纷,都會(huì)自動(dòng)清理測(cè)試過程中由代碼產(chǎn)生的環(huán)境變量和全局變量。
如果你之前在環(huán)境中設(shè)置了某個(gè)變量的值呢铆,就算在 Collection 中有代碼改變變量的值晦鞋,在運(yùn)行 Collection 后悠垛,變量的值依然時(shí)你設(shè)置的那個(gè)而不是代碼改變后的娜谊。但如果你勾選了此設(shè)置,那么你將會(huì)看到變量的值變?yōu)檫\(yùn)行過程中代碼改的那個(gè)值湾趾。
簡(jiǎn)單舉一個(gè)例子(以下環(huán)境和環(huán)境變量的操作請(qǐng)參考對(duì)應(yīng)章節(jié)):
- 首先我們?cè)O(shè)置一個(gè) test 的環(huán)境派草;
- 在該環(huán)境中設(shè)置一個(gè)變量 value,并設(shè)置默認(rèn)值為 123 艺普;
- 發(fā)送一個(gè)請(qǐng)求歧譬,在請(qǐng)求的 Tests 中重設(shè) value 的值為 xyz搏存;
請(qǐng)求url為:
https://postman-echo.com/get?test={{value}}
請(qǐng)求的 Tests為:
pm.environment.set("value", "xyz"); // 重設(shè) value 變量的值
pm.test("判斷請(qǐng)求是否包含test參數(shù)", function () {
pm.expect(pm.response.text()).to.include("test");
});
- 不勾選此選項(xiàng)運(yùn)行一次 Collection 并觀察環(huán)境變量的值璧眠,依然是 123;
- 勾選此選項(xiàng)再運(yùn)行一次 Collection舌界,再觀察環(huán)境變量的值泰演;
- 能明了否睦焕?
Run collection without using stored cookies 不使用 cookie 管理器
在我們測(cè)試會(huì)保存 Cookie 的請(qǐng)求時(shí)靴拱,Postman 內(nèi)置的 Cookie 管理器會(huì)自動(dòng)儲(chǔ)存請(qǐng)求收倒的 Cookie 信息(這功能類似瀏覽器的行為)猾普。后續(xù)請(qǐng)求可以使用 Cookie 管理器中的 Cookie 信息初家。
比如登錄請(qǐng)求后會(huì)自動(dòng)存儲(chǔ) Cookie,而后需要登錄才能訪問的請(qǐng)求溜在,會(huì)使用已存儲(chǔ)的 Cookie 信息掖肋,就能正常訪問。
此設(shè)置如果勾選沿盅,則會(huì)阻止 Collecion 中的請(qǐng)求存儲(chǔ) Cookie 和從 Cookie 管理器中讀取 Cookie纫溃。也就是說,你需要自己額外處理這些 Cookie南窗。
當(dāng)然如果這些請(qǐng)求對(duì)應(yīng)的接口并沒有使用 Cookie 機(jī)制那就不用在意此選項(xiàng)了郎楼。