內(nèi)容概要:1晃酒、環(huán)境變量表牢、全局變量 2、腳本 3贝次、數(shù)據(jù)池 4崔兴、mock server
一、主界面
1蛔翅、History:查看看請(qǐng)求的歷史記錄
? ? Collections:創(chuàng)建的收藏敲茄,收藏可以把請(qǐng)求的URL地址、方法山析、參數(shù)保存下來(lái)堰燎。
2、request builder:請(qǐng)求構(gòu)建器笋轨,可以快速構(gòu)建出我們想要的request秆剪。
3、reponse:body響應(yīng)內(nèi)容爵政,有三種查看方式
????????pretty:格式化json或xml形式的響應(yīng)內(nèi)容
????????raw:text文本
????????perview:渲染后的響應(yīng)內(nèi)容
右上角也包含了響應(yīng)狀態(tài)碼仅讽、響應(yīng)時(shí)間及響應(yīng)大小。
二钾挟、Environment 和 Globals
在request左上角可以配置洁灵、查看環(huán)境變量和全局變量
配置好的環(huán)境變量和全局變量,在請(qǐng)求地址等龙、請(qǐng)求體和腳本中都可以引用处渣。例:在接口地址中引用環(huán)境變量,實(shí)現(xiàn)在測(cè)試環(huán)境和正式環(huán)境間的快速切換蛛砰,不需要再重新構(gòu)建請(qǐng)求罐栈。
三、腳本
postman集成了一個(gè)基于nodejs的script引擎泥畅,借助它荠诬,可以為requests和collections添加動(dòng)態(tài)的行為。
這樣就可以在編寫test suite時(shí),構(gòu)建可以包含動(dòng)態(tài)參數(shù)的request柑贞,在request之間傳遞數(shù)據(jù)等等方椎,實(shí)現(xiàn)一定程度上的自動(dòng)化測(cè)試。
你可以在流程中的兩個(gè)時(shí)間段中添加要執(zhí)行的JavaScript代碼:
1. 在發(fā)送request之前钧嘶,編寫pre-request script棠众,定制化request。
2. 收到response之后有决,用test script闸拿,處理返回的數(shù)據(jù)。
流程如下:
pre-request script就是一段在發(fā)送request之前執(zhí)行的腳本书幕,通過(guò)它再配合上對(duì)環(huán)境變量的使用新荤,可以實(shí)現(xiàn)變化的url參數(shù)、變化的請(qǐng)求body台汇。
舉個(gè)栗子:
我想每次使用不同的insuPeriod來(lái)請(qǐng)求這個(gè)接口苛骨。
先配置了一個(gè)叫insuPeriod初始值為0的全局變量,并在我的請(qǐng)求體中使用雙花括號(hào)引用了這個(gè)變量苟呐。
然后在Pre-request Script里面寫了個(gè)腳本痒芝,使insuPeriod自增。
這時(shí)候我們每發(fā)送一次請(qǐng)求insuPeriod都會(huì)+1掠抬。
但是這時(shí)還需要靠肉眼去看response的內(nèi)容來(lái)判斷結(jié)果是否符合預(yù)期吼野。
所以我們寫一個(gè)test來(lái)在每一次請(qǐng)求結(jié)束后自動(dòng)去判斷,下面這一段代碼是來(lái)判斷response body的code值是否等于"SUCCESS"两波,若不等于瞳步,則不通過(guò)測(cè)試。(在test中有postman準(zhǔn)備好的code snippets 選擇即可直接使用)
可我還是不滿足腰奋,因?yàn)楝F(xiàn)在還是需要我每次去點(diǎn)擊發(fā)送請(qǐng)求奏窑,可不可以讓它自動(dòng)執(zhí)行多次請(qǐng)求并斷言呢轿腺?
這時(shí)就需要用到collection runner中的迭代了,在collection runner中我們可以設(shè)置運(yùn)行環(huán)境、迭代次數(shù)剩檀、每次運(yùn)行的間隔時(shí)間桨嫁,還可以上傳本地的數(shù)據(jù)文件以供使用(后話)蔚润。
這里我設(shè)置了12次迭代训貌,然后開(kāi)始執(zhí)行。
執(zhí)行完畢后postman會(huì)生成Run Results 和 Run Summary康二,在這兩個(gè)頁(yè)面可以查看每次請(qǐng)求的結(jié)果碳胳、test腳本執(zhí)行的結(jié)果、也可以查看每次運(yùn)行的詳細(xì)信息沫勿,便于定位問(wèn)題挨约,從下圖中可以看出第二次的提交的requst body中的insuPeriod值為2味混,說(shuō)明我們的Pre-request Scrip起了作用。
四诫惭、數(shù)據(jù)池
在postman的collection runner中可以上傳數(shù)據(jù)文件翁锡,使用這個(gè)數(shù)據(jù)文件可以是我們的請(qǐng)求和腳本參數(shù)化,使每次用例的迭代的數(shù)據(jù)都不同夕土。
數(shù)據(jù)文件可以是cvs或json馆衔,在csv文件中,文件的第一行為參數(shù)名隘弊,下面是參數(shù)對(duì)應(yīng)的值哈踱,需注意數(shù)據(jù)的條數(shù)要與迭代的次數(shù)相同。
圖中為兩個(gè)參數(shù)設(shè)置了三個(gè)值
在請(qǐng)求中引用參數(shù)梨熙,每次迭代都會(huì)重新獲取數(shù)據(jù)池中的值。
同樣刀诬,在腳本中也可以引用數(shù)據(jù)池中的參數(shù)咽扇,可以用data.test或data['test']來(lái)獲取
在collection runner中上傳數(shù)據(jù)文件生成數(shù)據(jù)池。
此時(shí)點(diǎn)擊開(kāi)始運(yùn)行陕壹,每次請(qǐng)求都會(huì)一次請(qǐng)求上傳的數(shù)據(jù)池中的數(shù)據(jù)质欲,實(shí)現(xiàn)了collection運(yùn)行的參數(shù)化,而不用每次運(yùn)行都去手動(dòng)修改參數(shù)值糠馆,相當(dāng)于一個(gè)簡(jiǎn)單的自動(dòng)化測(cè)試嘶伟,適用于回歸測(cè)試。
五又碌、mock server
mock測(cè)試:對(duì)于某些不容易構(gòu)造或者不容易獲取的對(duì)象九昧,用一個(gè)虛擬的對(duì)象來(lái)創(chuàng)建以便測(cè)試的測(cè)試方法,可以不后端返回?cái)?shù)據(jù)毕匀。
我們的業(yè)務(wù)也有涉及到其他公司提供接口的情況铸鹰,會(huì)使測(cè)試進(jìn)度卡在某個(gè)節(jié)點(diǎn)上,可以用postman搭建臨時(shí)的mock server來(lái)模擬這類接口的服務(wù)皂岔,進(jìn)行測(cè)試蹋笼,下面演示一下如何用postman創(chuàng)建一個(gè)mock。
1躁垛、new一個(gè)mock server剖毯,填寫一個(gè)api,這里可以先不詳細(xì)寫教馆,后面再對(duì)request path 和responsebody做二次編輯逊谋。
2、填寫mock-server名稱活玲,如果需要使用環(huán)境變量涣狗,可下拉選擇谍婉。創(chuàng)建mock-server。
3镀钓、生成mock url
4穗熬、創(chuàng)建mock時(shí)已經(jīng)生成了一個(gè)為testmock的路徑,這時(shí)選擇在這個(gè)mock-server的環(huán)境下丁溅,點(diǎn)擊send發(fā)送請(qǐng)求就可以獲取到我們預(yù)先設(shè)定好的返回值了唤蔗。
點(diǎn)擊右上角的Add Example,可以再添加其他的請(qǐng)求和返回值窟赏。