第一:請求說明
1?Authorization:身份驗(yàn)證,主要用來填寫用戶名密碼隘冲,以及一些驗(yàn)簽字段,postman有一個(gè)helpers可以幫助我們簡化一些重復(fù)和復(fù)雜的任務(wù)。當(dāng)前的一套helpers可以幫助你解決一些authentication protocols的問題嫉戚。棒呛;
2Headers:請求的頭部信息
3Body:post請求時(shí)必須要帶的參數(shù)唬滑,里面放一些key-value鍵值對
4Pre-requerst Script:可以讓你在 請求之前自定義請求數(shù)據(jù)告唆,這個(gè)運(yùn)行在請求之前棺弊,語法使用JavaScript語句。
5tests:tests標(biāo)簽功能比較強(qiáng)大擒悬,通常用來寫測試模她,它是運(yùn)行在請求之后。支持JavaScript語法懂牧。postman每次執(zhí)行request的時(shí)候侈净,會執(zhí)行tests。測試結(jié)果會在tests的tab上面顯示一個(gè)通過的數(shù)量以及對錯情況僧凤。這個(gè)后面會進(jìn)行詳解畜侦,它也可以用來設(shè)計(jì)用例,比如要測試返回結(jié)果是否含有某一字符串
第二:請求體
Postman提供幾乎所有的請求體躯保,在 Body 標(biāo)簽頁中配置接口請求的請求體旋膳,在你選擇不同的請求體格式時(shí),Postman會自動添加對應(yīng)的Content-Type請求頭途事,Binary形式的請求體不會自動添加验懊。
None:(默認(rèn))沒有請求體
Form-data:配置multipart/form-data格式的請求體,支持文件上傳
Urlencoded:配置與URL請求參數(shù)相同的編碼格式尸变,不支持文件上傳
Raw:原生請求體义图,Postman不會對請求體做任何修改,除了替換變量之外
Binary:配置無法輸入的內(nèi)容振惰,比如:文本歌溉、圖像、音頻骑晶、視頻文件
第三:執(zhí)行用例
log? responses:
(1)、for? all? requests:記錄所有請求的日志響應(yīng)草慧;
(2)桶蛔、for? failed? requests:只記錄至少一個(gè)失敗測試請求的響應(yīng)日志;
(3)漫谷、for? no? requests:不會記錄響應(yīng)日志仔雷;
運(yùn)行參數(shù)如下:
Environment:選擇運(yùn)行的環(huán)境,環(huán)境主要決定環(huán)境變量的舔示;
Iterations:?用例迭代的次數(shù)碟婆,也就是當(dāng)前選中的這些請求需要運(yùn)行幾次;
Delay:延遲惕稻,用來設(shè)置每個(gè)請求之間的運(yùn)行時(shí)間(以毫米為單位)竖共,如果設(shè)置了,則一個(gè)請求運(yùn)行完后會等待相應(yīng)的時(shí)間才運(yùn)行下一個(gè)請求俺祠;
Log Responses:記錄響應(yīng)日志公给,這是一種限制性的設(shè)置借帘,默認(rèn)是記錄所有請求的日志,也可以限制為只記錄錯誤日志或者完全不記錄淌铐;
Data:選中數(shù)據(jù)文件肺然,這是 Postman 提供的數(shù)據(jù)驅(qū)動的方式,數(shù)據(jù)針對當(dāng)前 Collection 中請求中使用的變量腿准。支持 Csv 和 Json 格式的文件际起;
Keep variable values:保持變量值。如果 Collection 中有腳本重新設(shè)置環(huán)境變量或者全局變量的值吐葱,默認(rèn)情況下只對當(dāng)次運(yùn)行有效加叁。
默認(rèn)情況下,每次 Collection 運(yùn)行結(jié)束后唇撬,都會自動清理測試過程中由代碼產(chǎn)生的環(huán)境變量和全局變量它匕。
如果你之前在環(huán)境中設(shè)置了某個(gè)變量的值,就算在 Collection 中有代碼改變變量的值窖认,在運(yùn)行 Collection 后豫柬,變量的值依然時(shí)你設(shè)置的那個(gè)而不是代碼改變后的。
但如果你勾選了此設(shè)置扑浸,那么你將會看到變量的值變?yōu)檫\(yùn)行過程中代碼改的那個(gè)值烧给。
?如果勾選了此選項(xiàng),那么在腳本中重設(shè)的變量值會保存下來喝噪,也就是會直接修改 Postman 中預(yù)設(shè)的變量值础嫡;
Run collection without using stored cookies:如果勾選此選項(xiàng),運(yùn)行 Collection 的時(shí)候則不會使用 Postman 的 cookie 管理器酝惧;
Save cookies after collection run:運(yùn)行后榴鼎,儲存運(yùn)行過程中的 cookies,此選項(xiàng)默認(rèn)勾選晚唇。
第四:變量
pm.variables對象
1巫财、在Postman中,所有的變量都符合特定的層次結(jié)構(gòu)哩陕。在當(dāng)前迭代中定義的所有變量優(yōu)先于當(dāng)前環(huán)境中定義的變量平项,這些變量覆蓋全局范圍內(nèi)定義的變量,即迭代數(shù)據(jù)<環(huán)境變量<全局變量
2悍及、pm.variables對象包含以下方法可供調(diào)用
設(shè)置環(huán)境變量闽瓢、全局變量
pm.globals.set("cityname",?data["cityname"]);
pm.environment.set("cityname_g1",?'12232');
第五:Postman中的Test
在Postman中用于測試、斷言的函數(shù)主要有如下
注:
1心赶、pm.test("testName", specFunction):此函數(shù)用于在沙箱中編寫測試規(guī)范扣讼。在這個(gè)函數(shù)中編寫測試可以準(zhǔn)確地命名測試,并確保在這個(gè)函數(shù)內(nèi)出現(xiàn)任何錯誤的情況下园担,腳本的其余部分不會被阻塞
2届谈、pm.expect是一個(gè)通用的斷言函數(shù)枯夜。這個(gè)是ChaiJS expect BDD庫,使用這個(gè)庫可以編寫可讀性很高的測試 艰山。pm.expect用于處理來自響應(yīng)或變量的數(shù)據(jù)斷言
3湖雹、pm.test()方法用于創(chuàng)建一個(gè)測試(告訴Postman這是測試)。其接受兩個(gè)參數(shù)曙搬,一個(gè)是測試的相關(guān)描述摔吏,一個(gè)是一個(gè)函數(shù):用于執(zhí)行斷言相關(guān)的語句
例6:
pm.test("response should be okay to process", function () {
? ? ? pm.response.to.not.be.error;//這種也是斷言的一種
? ? ? pm.response.to.not.have.jsonBody('error');
? });
pm.test("Status code is 200", function () {
? ? pm.response.to.have.status(200);
});
————————————————