內(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)的行為。
這樣就可以在編寫(xiě)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之前,編寫(xiě)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里面寫(xiě)了個(gè)腳本,使insuPeriod自增。

這時(shí)候我們每發(fā)送一次請(qǐng)求insuPeriod都會(huì)+1。
但是這時(shí)還需要靠肉眼去看response的內(nèi)容來(lái)判斷結(jié)果是否符合預(yù)期。
所以我們寫(xiě)一個(gè)test來(lái)在每一次請(qǐng)求結(jié)束后自動(dòng)去判斷,下面這一段代碼是來(lái)判斷response body的code值是否等于"SUCCESS",若不等于,則不通過(guò)測(cè)試。(在test中有postman準(zhǔn)備好的code snippets 選擇即可直接使用)

可我還是不滿(mǎn)足,因?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ù)文件以供使用(后話(huà))。
這里我設(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)模擬這類(lèi)接口的服務(wù),進(jìn)行測(cè)試,下面演示一下如何用postman創(chuàng)建一個(gè)mock。
1、new一個(gè)mock server,填寫(xiě)一個(gè)api,這里可以先不詳細(xì)寫(xiě),后面再對(duì)request path 和responsebody做二次編輯。

2、填寫(xiě)mock-server名稱(chēng),如果需要使用環(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)求和返回值。
