導(dǎo)讀:
現(xiàn)在的web和移動(dòng)開發(fā)瓣窄,常常會(huì)調(diào)用服務(wù)器提供restful接口進(jìn)行數(shù)據(jù)請(qǐng)求,為了調(diào)試颖榜,一般會(huì)先用工具進(jìn)行測(cè)試惊科,通過測(cè)試后才開始在開發(fā)中使用。這里介紹一下如何在chrome瀏覽器利用postman應(yīng)用進(jìn)行restful api接口請(qǐng)求測(cè)試亮钦。
關(guān)于Postman的安裝方法馆截,可以參考Postman軟件安裝.
一、導(dǎo)入導(dǎo)出打包的應(yīng)用
在Postman中導(dǎo)入導(dǎo)出我們的 測(cè)試數(shù)據(jù)包 和 工作環(huán)境 非常的方便:
導(dǎo)出數(shù)據(jù)包:
導(dǎo)出工作環(huán)境:
導(dǎo)入數(shù)據(jù)包:
導(dǎo)入工作環(huán)境:
二蜂莉、發(fā)送請(qǐng)求和查看響應(yīng)
1.發(fā)送請(qǐng)求
Postman的界面分為 左邊的側(cè)邊欄 和 右邊的請(qǐng)求構(gòu)建器 兩部分蜡娶。請(qǐng)求構(gòu)建器允許你可以快速的創(chuàng)建幾乎任何類型的請(qǐng)求。一個(gè)HTTP請(qǐng)求的四部分:URL映穗、Method窖张、Headers、Body蚁滋,在Postman中都可以設(shè)置宿接。
URL:
在你構(gòu)建request請(qǐng)求的時(shí)候赘淮,首先要設(shè)置的就是URL。在URL輸入框中輸入你請(qǐng)求的鏈接睦霎,你可以單擊Params按鈕梢卸,在編輯器中輸入key-value格式的URL參數(shù)。
在URL地址欄中的輸入和編輯器中輸入的key-value參數(shù)副女,不會(huì)自動(dòng)的編碼為 URL-encoded蛤高,選中要編碼的文本,右鍵選擇**EncodeURIComponent **碑幅,手動(dòng)編碼參數(shù)值戴陡。
你可以單獨(dú)的添加參數(shù),Postman會(huì)自動(dòng)的把他和URL整合到一起沟涨,如果你從其他的地方粘貼了URL過來(lái)恤批,Postman也會(huì)自動(dòng)的把 Params中的參數(shù)進(jìn)行設(shè)置。
一些API端點(diǎn)使用路徑變量拷窜,你可以在Postman中設(shè)置开皿,他們位于兩個(gè) /
中,樣式如下:
如果你要設(shè)置他篮昧,單擊Params按鈕赋荆,你會(huì)發(fā)現(xiàn)key部分已被自動(dòng)設(shè)置好了,根據(jù)需要填寫value部分就行懊昨。
Headers:
單擊Headers切換按鈕窄潭,你可以在key-value編輯器中設(shè)置任何字符串作為header的名稱。
受限的headers和cookies
不幸的是一些headers收到Chrome和XMLHttpRequest規(guī)范的限制酵颁,以下headers被屏蔽:
Accept-Charset
Accept-Encoding
Access-Control-Request-Headers
Access-Control-Request-Method
Connection
Content-Length
Cookie
Cookie 2
Content-Transfer-Encoding
Date
Expect
Host
Keep-Alive
Origin
Referer
TE
Trailer
Transfer-Encoding
Upgrade
User-Agent
Via
從Postman v0.9.6版本開始嫉你,我們可以使用攔截器來(lái)發(fā)送這些受限的headers:
安裝完成后點(diǎn)擊切換就可以使用這些headers發(fā)送請(qǐng)求了。
headers預(yù)設(shè)
你可以保存常用的headers在headr prest里面:
Method:
單擊HTTP的請(qǐng)求方法按鈕躏惋,在給出的下拉菜單中選擇使用的方法即可幽污,對(duì)應(yīng)的方法需要body的,body部分便被設(shè)置為可填寫簿姨。
body部分編輯:
當(dāng)我們發(fā)送請(qǐng)求需要填寫body部分時(shí)距误,Postman幾乎可以讓我們發(fā)送任何類型的HTTP請(qǐng)求。body編輯器分為4個(gè)部分:
form-data
form-data是web表單默認(rèn)的傳輸格式扁位,編輯器允許你通過設(shè)置key-value形式的數(shù)據(jù)來(lái)模擬填充表單准潭。你可以在最后的選項(xiàng)中選擇添加文件。
urlencoded
這個(gè)編碼格式同樣可以通過設(shè)置key-value的方式作為URL的參數(shù)域仇。
raw
一個(gè)raw請(qǐng)求可以包含任何內(nèi)容刑然。在這里你可以設(shè)置我們常用的JSON 和 XML數(shù)據(jù)格式。
二進(jìn)制
在這里你可以發(fā)送視頻暇务、音頻泼掠、文本等文件怔软。
2.處理響應(yīng)
Postman的響應(yīng)查看器允許你方便的查看API的響應(yīng)是否正確。
一個(gè)API響應(yīng)器包括Body武鲁、Headers爽雄、status code三部分。Body 和 Headers在不同的選項(xiàng)卡中沐鼠,status code在收到響應(yīng)時(shí)在標(biāo)簽行的最右邊顯示挚瘟。
保存響應(yīng)內(nèi)容
如果你在收藏夾中保存了request請(qǐng)求,你可以在請(qǐng)求收到的對(duì)應(yīng)的響應(yīng)中單擊save按鈕饲梭,指定一個(gè)response的名字乘盖,來(lái)保存對(duì)應(yīng)額response。一個(gè)request對(duì)應(yīng)的所有的response都是有效的憔涉。
當(dāng)我們要查看我們保存的response的時(shí)候订框,只需要點(diǎn)擊我們的發(fā)送的request選擇我們要查看的response即可:
查看響應(yīng)
Postman的body標(biāo)簽中有三種查看方式:Pretty、Raw兜叨、Preview
Pretty:
Pretty方式穿扳,可以讓JSON 和 XML的響應(yīng)內(nèi)容顯示的更美觀規(guī)整。
Raw:
顯示最原始的數(shù)據(jù)国旷,可以幫助你判斷是否minified
Preview:
可以幫你把HTML頁(yè)面自動(dòng)解析顯示出來(lái)矛物。
Headers
這里顯示了一些鍵值對(duì),表示了HTTP請(qǐng)求中header中的信息跪但。
Cookies
Postman v0.8.x 版本可以顯示瀏覽器的cookie履羞。
3.身份驗(yàn)證
Basic Auth
輸入用戶名和密碼,點(diǎn)擊 Update Request 生成 authorization header
Digest Auth
Digest auth 比 Digest auth 更加復(fù)雜屡久,使用當(dāng)前request中的設(shè)置來(lái)生成authorization header忆首,請(qǐng)確保在生成前你的設(shè)置的正確性。
OAuth 1.0
Postman的OAuth1.0工具讓你可以生成支持OAuth1.0身份認(rèn)證的請(qǐng)求被环,目前他不能獲取access token糙及。
OAuth 2.0
Postman支持獲取OAuth 2.0 token,并且可以非常簡(jiǎn)單的添加到request中筛欢。
從OAuth 2.0中獲取access token浸锨,要遵循下面這些步驟:
- 在你的APP設(shè)置頁(yè)面設(shè)置 **https://www.getpostman.com/oauth2/callback
** 作為 callback URL - 獲取 authorization URL, 從你的API提供者那里訪問 token URL、 client ID 和 client secret悴能。你可以設(shè)置一些API需要的參數(shù)范圍來(lái)設(shè)置你再API中的訪問級(jí)別揣钦。
- 按下 Request Token 按鈕來(lái)啟動(dòng)OAuth 2.0 flow雳灾。如果一切設(shè)置正確漠酿,你將會(huì)被重定向到Postman的服務(wù)器,他將獲取你的access token 并且發(fā)送到Postman的app谎亩,這樣就給Postman添加了token炒嘲,給他設(shè)置一個(gè)name宇姚,讓你在以后可以快速的訪問
- access token將被保存在本地,顯示在幫助列表夫凸。點(diǎn)擊token名稱浑劳,就可以把它添加到request中。
4.Requests History
所有你使用Postman發(fā)送的request都將保存在左側(cè)邊欄的History中夭拌,他會(huì)幫助你通過嘗試不同的request來(lái)生成一個(gè)新的request魔熏,而不必浪費(fèi)你太多的時(shí)間。你可以通過單擊一個(gè)request的名字來(lái)加載他鸽扁。
如果你創(chuàng)建了Postman的賬戶蒜绽,你的歷史數(shù)據(jù)將被同步到Postman的服務(wù)器,你可以在不同的平臺(tái)上使用Postman的時(shí)候同步你的數(shù)據(jù)桶现。
5.使用tab來(lái)控制多個(gè)請(qǐng)求
很多用戶可能需要同時(shí)打開多個(gè)請(qǐng)求躲雅,你發(fā)送的request將被保持在當(dāng)前的標(biāo)簽中,當(dāng)你切換到其他的標(biāo)簽時(shí)骡和,不用擔(dān)心不能及時(shí)的接受response相赁。
6.使用攔截器來(lái)讀寫cookie
和Mac上的應(yīng)用不同,Chrome的應(yīng)用本身并不支持獲取cookie慰于,你可以使用攔截器來(lái)實(shí)現(xiàn)這個(gè)功能钮科。打開攔截器的時(shí)候,你可以檢索特定域中的cookie东囚,并發(fā)送包含cookie的request跺嗽。
檢索cookie:
- 啟動(dòng)攔截器
- 在測(cè)試部分,你可以使用responseCookies對(duì)象页藻,他將返回一個(gè)cookie對(duì)象的數(shù)組桨嫁。使用postman.getResponseCookie(cookieName)檢索cookie特定的名稱。他將返回一個(gè)單獨(dú)的cookie對(duì)象份帐。
每個(gè)cookie都會(huì)包含下面這些屬性:
domain璃吧、 hostOnly、httpOnly废境、 name,畜挨、path、 secure噩凹、 session巴元、 storeId、 value
設(shè)置cookie:
確保打開了攔截器
在headers部分包含cookie的頭
例如:Cookie: name=value; name2=value2
3.發(fā)送request驮宴,你設(shè)置的cookie將會(huì)和你的request一起發(fā)送逮刨。
7.捕捉request
現(xiàn)在Postman的攔截器可以從Chrome瀏覽器直接捕捉request,并保存到歷史中堵泽。這意味著你可以及時(shí)的調(diào)試你的web應(yīng)用的api修己。這里不需要安裝或者配置代理恢总,也不需要更改代碼。你可以根據(jù)基于URL的正則表達(dá)式過濾request睬愤。
8.設(shè)置文件
你可以在Postman的設(shè)置中處理重定向
General
- Trim keys and values in request body
如果你使用表單數(shù)據(jù)或者URL編碼模式來(lái)發(fā)送數(shù)據(jù)到服務(wù)器片仿,這項(xiàng)設(shè)為true后就引起所有參數(shù)修整。
- Send no-cache header
你可能想要這項(xiàng)設(shè)置為true尤辱,這會(huì)確保你收到及時(shí)刷新的response砂豌。
- Send postman-token header
這主要是用來(lái)繞過Chrome的一個(gè)bug。如果一個(gè)XMLHttpRequest 處于等待狀態(tài)光督,另一個(gè)request 發(fā)送了同樣的參數(shù)奸鸯,Chrome將會(huì)為兩個(gè)request返回同樣的response。發(fā)送一個(gè)隨機(jī)的token將會(huì)避免這個(gè)問題可帽。這同樣也會(huì)幫助你區(qū)分服務(wù)器端的request娄涩。
- XHR Timeout(ms)
設(shè)置app等待響應(yīng)的時(shí)間,如果服務(wù)器沒有響應(yīng)的話映跟。
- Automatically follow redirects
防止我們的request返回一個(gè)300系列的response被自動(dòng)重定向蓄拣。你需要安裝攔截器來(lái)防止重定向。
- Open history/collection requests in a new tab
設(shè)置為 true努隙,當(dāng)你點(diǎn)擊左側(cè)邊欄歷史或者收藏里面的request時(shí)球恤,會(huì)在一個(gè)新的tab中打開。
設(shè)置為false荸镊,則會(huì)在當(dāng)前tab中打開咽斧。
- Response Font Size
設(shè)置response視圖中的字體大小
- UI Size
設(shè)置UI的大小
- Retain headers on clicking on links
如果你在response中你點(diǎn)擊了一個(gè)連接,Postman會(huì)為這個(gè)URL創(chuàng)建一個(gè)新的GET request躬存。如果你想要保留headers 在request之前設(shè)置他张惹,就設(shè)置為true。當(dāng)你主要方為一些受保護(hù)的資源的時(shí)候這個(gè)功能將會(huì)非常有用岭洲。
- Language detection
如果你測(cè)試的API沒有在header中返回 Content-Type 宛逗,則response不會(huì)數(shù)據(jù)轉(zhuǎn)換成合適的格式。你可以強(qiáng)制指定body的數(shù)據(jù)類型為JSON等格式盾剩。
- Variable delimiter
變量是保存在雙花括號(hào)中的雷激,但是你可以改變成其他的字符,這項(xiàng)并不推薦設(shè)置除非你出現(xiàn)了問題需要更改這里告私。
- Force windows line endings
Refer to this Github issue to know more
- Instant dialog boxes
禁用 eye-candy 并立即顯示所有的對(duì)框框模式
- Send anonymous usage data to Postman
來(lái)禁止匿名用戶使用數(shù)據(jù)的選項(xiàng)屎暇,這是的Postman的保護(hù)性更好。
Theme
選擇你喜歡的兩種主題風(fēng)格
Shortcuts
設(shè)置常用的快捷鍵
Data
導(dǎo)入導(dǎo)出我們?cè)O(shè)置的環(huán)境和數(shù)據(jù)驻粟,這回覆蓋你現(xiàn)在的收藏和環(huán)境根悼,所以小心使用。當(dāng)然你可以把你現(xiàn)在的環(huán)境先導(dǎo)出作為備份。
Add-ons
Sync
如果你登錄了Postman番挺,你的數(shù)據(jù)就會(huì)被同步更新到Postman的服務(wù)器上,者可以確保你再次使用Postman的時(shí)候可以同步自己的數(shù)據(jù)屯掖。
你可以強(qiáng)制同步或者禁用他玄柏。
Postman 使用手冊(cè)系列教程:
Postman軟件安裝
Postman使用手冊(cè)1——導(dǎo)入導(dǎo)出和發(fā)送請(qǐng)求查看響應(yīng)
Postman使用手冊(cè)2——管理收藏
Postman使用手冊(cè)3——環(huán)境變量
Postman使用手冊(cè)4——API test
Designed By CDP