Postman 接口測試神器

Postman 是一個接口測試和 http 請求的神器础爬,非常好用。

官方 github 地址:https://github.com/postmanlabs

Postman 的優(yōu)點(diǎn):

支持各種的請求類型: get、post、put对室、patch、delete 等

支持在線存儲數(shù)據(jù),通過賬號就可以進(jìn)行遷移數(shù)據(jù)

很方便的支持請求 header 和請求參數(shù)的設(shè)置

支持不同的認(rèn)證機(jī)制掩宜,包括 Basic Auth蔫骂,Digest Auth,OAuth 1.0牺汤,OAuth 2.0 等

響應(yīng)數(shù)據(jù)是自動按照語法格式高亮的辽旋,包括 HTML,JSON 和 XML

以下內(nèi)容主要參考:Github: api_tool_postman

安裝

Postman 可以單獨(dú)作為一個應(yīng)用安裝檐迟,也可以作為 chrome 的一個插件安裝补胚。

chrome 插件安裝,Postman 插件地址

單獨(dú)應(yīng)用安裝下載

下面主要介紹下載安裝獨(dú)立版本app 軟件的 Postman 的過程:

去主頁Postman 官網(wǎng)找到:Postman | Apps

去下載自己平臺的版本:

Mac

Windows(x86/x64)

Linux(x86/x64) 即可。

快速入門锅减,總體使用方略

安裝成功后糖儡,打開軟件。

新建接口

對應(yīng)的Request:New -> Request

或怔匣,在右邊的 Tab 頁面中點(diǎn)擊加號+:

即可看到新建的 Tab 頁:

設(shè)置 HTTP 請求的方法

設(shè)置 HTTP 的 Method 方法和輸入 api 的地址

設(shè)置相關(guān)請求頭信息

設(shè)置相關(guān) GET 或 POST 等的參數(shù)

發(fā)送請求

都填寫好之后握联,點(diǎn)擊 Send 去發(fā)送請求 Request:

查看響應(yīng) Response的信息

然后可以重復(fù)上述修改 Request 的參數(shù),點(diǎn)擊 Send 去發(fā)送請求的過程每瞒,以便調(diào)試到 API 接口正常工作為止金闽。

保存接口配置

待整個接口都調(diào)試完畢后,記得點(diǎn)擊 Save 去保存接口信息:

去保存當(dāng)前 API 接口剿骨,然后需要填寫相關(guān)的接口信息:

Request Name: 請求的名字

我一般習(xí)慣用保存為 接口的最后的字段名代芜,比如http://{% raw %}{{% endraw %}{server_address}}/ucows/login/login中的/login/login

Request Description: 接口的描述

可選最好寫上該接口的要實(shí)現(xiàn)的基本功能和相關(guān)注意事項(xiàng)

支持 Markdown 語法

Select a collection or folder to save: 選擇要保存到哪個分組(或文件夾)

往往保存到某個 API 接口到所屬的該項(xiàng)目名的分組

填寫好內(nèi)容,選擇好分組浓利,再點(diǎn)擊保存:

此時挤庇,Tab 的右上角的黃色點(diǎn)(表示沒有保存)消失了,表示已保存贷掖。

且對應(yīng)的分組中可以看到對應(yīng)的接口了:

[warning] 默認(rèn)不保存返回的 Response 數(shù)據(jù)

直接點(diǎn)擊 Save 去保存嫡秕,只能保存 API 本身(的 Request 請求),不會保存 Response 的數(shù)據(jù)

想要保存 Response 數(shù)據(jù)苹威,需要用后面要介紹的多個 Example

Request 的多參數(shù)操作詳解

自動解析多個參數(shù) Params

比如昆咽,對于一個 GET 的請求的 url 是:http://openapi.youdao.com/api?q=糾刪碼(EC)的學(xué)習(xí)&from=zh_CHS&to=EN&appKey=152e0e77723a0026&salt=4&sign=6BE15F1868019AD71C442E6399DB1FE4

對應(yīng)著其實(shí)是?key=value形式中包含多個 Http 的 GET 的 query string=query parameters

Postman 可以自動幫我們解析出對應(yīng)參數(shù),可以點(diǎn)擊 Params:

看到展開的多個參數(shù):

如此就可以很方便的修改牙甫,增刪對應(yīng)的參數(shù)了掷酗。

臨時禁用參數(shù)

且還支持,在不刪除某參數(shù)的情況下窟哺,如果想要暫時不傳參數(shù)泻轰,可以方便的通過不勾選的方式去實(shí)現(xiàn):

批量編輯 GET 的多個參數(shù)

當(dāng)然,如果想要批量的編輯參數(shù)且轨,可以點(diǎn)擊右上角的Bulk Edit糕殉,去實(shí)現(xiàn)批量編輯亩鬼。

接口描述與自動生成文檔

API 的描述中,也支持 Markdown阿蝶,官方的接口說明文檔:Intro to API documentation雳锋。

所以,可以很方便的添加有條理的接口描述羡洁,尤其是參數(shù)解釋了:

描述支持 markdown 語法

而對于要解釋的參數(shù)玷过,可以通過之前的Param -> Bulk Edit的內(nèi)容:

拷貝過來,再繼續(xù)去編輯:

以及添加更多解釋信息:

點(diǎn)擊 Update 后筑煮,即可保存辛蚊。

發(fā)布接口并生成 markdown 的描述文件

去發(fā)布后:

對應(yīng)的效果:有道翻譯

Response 深入

Response 數(shù)據(jù)顯示模式

Postman 對于返回的 Response 數(shù)據(jù),支持三種顯示模式真仲。

默認(rèn)格式化后的 Pretty 模式

Raw 原始模式

點(diǎn)擊Raw袋马,可以查看到返回的沒有格式化之前的原始數(shù)據(jù):

Preview 預(yù)覽模式

以及 Preview,是對應(yīng) Raw 原始格式的預(yù)覽模式:

Preview 這種模式的顯示效果秸应,好像是對于返回的是 html 頁面這類虑凛,才比較有效果。

Response 的 Cookies

很多時候普通的 API 調(diào)用软啼,倒是沒有 Cookie 的:

Response 的 Headers 頭信息

舉例桑谍,此處返回的是有 Headers 頭信息的:

可以從中看到服務(wù)器是 Nginx 的。

保存多個 Example

之前想要實(shí)現(xiàn)祸挪,讓導(dǎo)出的 API 文檔中能看到接口返回的 Response 數(shù)據(jù)锣披。后來發(fā)現(xiàn)是Example這個功能去實(shí)現(xiàn)此效果的。

如何添加 Example

繼續(xù)點(diǎn)擊Save Example:

保存后贿条,就能看到Example(1)了:

單個 Example 在導(dǎo)出的 API 文檔中的效果

然后再去導(dǎo)出文檔雹仿,導(dǎo)出文檔中的確能看到返回?cái)?shù)據(jù)的例子:

多個 Example 在導(dǎo)出的 API 文檔中的效果

其他好用的功能及工具

分組 Collection

在剛開始一個項(xiàng)目時,為了后續(xù)便于組織和管理整以,把同屬該項(xiàng)目的多個 API胧辽,放在一組里

所以要先去新建一個 Collection:New -> Collection

使用了段時間后,建了多個分組的效果:

單個分組展開后的效果:

歷史記錄 History

Postman 支持 history 歷史記錄悄蕾,顯示出最近使用過的 API:

用環(huán)境變量實(shí)現(xiàn)多服務(wù)器版本

現(xiàn)存問題

在測試 API 期間,往往存在多種環(huán)境础浮,對應(yīng) IP 地址(或域名也不同)

比如:

Prod:http://116.62.25.57/ucows

用于開發(fā)完成發(fā)布到生產(chǎn)環(huán)境

Dev:http://123.206.191.125/ucows

用于開發(fā)期間的線上的 Development 的測試環(huán)境

LocalTest:http://192.168.0.140:80/ucows

用于開發(fā)期間配合后臺開發(fā)人員的本地局域網(wǎng)內(nèi)的本地環(huán)境帆调,用于聯(lián)合調(diào)試 API 接口

而在測試 API 期間,往往需要手動去修改 API 的地址:

效率比較低豆同,且地址更換后之前地址就沒法保留了番刊。

另外,且根據(jù)不同 IP 地址(或者域名)也不容易識別是哪套環(huán)境影锈。

Postman 支持用 Environment 環(huán)境變量去實(shí)現(xiàn)多服務(wù)器版本

后來發(fā)現(xiàn) Postman 中芹务,有 Environment 和 Global Variable蝉绷,用于解決這個問題,實(shí)現(xiàn)不同環(huán)境的管理:

很明顯枣抱,就可以用來實(shí)現(xiàn)不用手動修改 url 中的服務(wù)器地址熔吗,從而動態(tài)的實(shí)現(xiàn),支持不同服務(wù)器環(huán)境:

Production 生產(chǎn)環(huán)境

Development 開發(fā)環(huán)境

Local 本地局域網(wǎng)環(huán)境

如何使用 Enviroment 實(shí)現(xiàn)多服務(wù)器版本

或者:

Environments are a group of variables & values, that allow you to quickly switch the context for your requests and collections.

Learn more about environments

You can declare a variable in an environment and give it a starting value, then use it in a request by putting the variable name within curly-braces. Create an environment to get started.

輸入 Key 和 value:

點(diǎn)擊 Add 后:

[info] 環(huán)境變量可以使用的地方

URL

URL params

Header values

form-data/url-encoded values

Raw body content

Helper fields

寫 test 測試腳本中

通過 postman 的接口佳晶,獲取或設(shè)置環(huán)境變量的值桅狠。

此處把之前的在 url 中的 IP 地址(或域名)換成環(huán)境變量:

鼠標(biāo)移動到環(huán)境變量上,可以動態(tài)顯示出具體的值:

再去添加另外一個開發(fā)環(huán)境:

則可添加完 2 個環(huán)境變量轿秧,表示兩個服務(wù)器地址中跌,兩個版本:

然后就可以切換不同服務(wù)器環(huán)境了:

可以看到,同樣的變量 server_address菇篡,在切換后對應(yīng) IP 地址就變成希望的開發(fā)環(huán)境的 IP 了:

Postman 導(dǎo)出 API 文檔中多個環(huán)境變量的效果

順帶也去看看漩符,導(dǎo)出為 API 文檔后,帶了這種 Environment 的變量的接口驱还,文檔長什么樣子:

發(fā)現(xiàn)是在發(fā)布之前嗜暴,需要選擇對應(yīng)的環(huán)境的:

發(fā)布后的文檔,可以看到所選環(huán)境和對應(yīng)服務(wù)器的 IP 的:

當(dāng)然發(fā)布文檔后铝侵,也可以實(shí)時切換環(huán)境:

環(huán)境變量的好處

當(dāng)更換服務(wù)器時灼伤,直接修改變量的 IP 地址:

即可實(shí)時更新,當(dāng)鼠標(biāo)移動到變量上即可看到效果:

代碼生成工具

查看當(dāng)前請求的 HTTP 原始內(nèi)容

對于當(dāng)前的請求咪鲜,還可以通過點(diǎn)擊 Code

去查看對應(yīng)的符合 HTTP 協(xié)議的原始的內(nèi)容:

各種語言的示例代碼Code Generation Tools

比如:

Swift 語言

Java 語言

其他各種語言 還支持其他各種語言:

目前支持的語言有:

HTTP

C (LibCurl)

cURL

C#(RestSharp)

Go

Java

OK HTTP

Unirest

Javascript

NodeJS

Objective-C(NSURL)

OCaml(Cohttp)

PHP

Python

Ruby(NET::Http)

Shell

Swift(NSURL)

代碼生成工具的好處是:在寫調(diào)用此 API 的代碼時狐赡,就可以參考對應(yīng)代碼,甚至拷貝粘貼對應(yīng)代碼疟丙,即可颖侄。

測試接口

選中某個分組后,點(diǎn)擊 Runner

選中某個分組后點(diǎn)擊 Run

即可看到測試結(jié)果:

關(guān)于此功能的介紹可參考Postman 官網(wǎng)git 圖

MockServer

直接參考官網(wǎng)享郊。

功能界面

多 Tab 分頁

Postman 支持多 tab 頁览祖,于此對比之前有些 API 調(diào)試工具就不支持多 Tab 頁,比如Advanced Rest Client

多 tab 的好處:

方便在一個 tab 中測試炊琉,得到結(jié)果后展蒂,復(fù)制粘貼到另外的 tab 中,繼續(xù)測試其它接口

比如此處 tab1 中苔咪,測試了獲取驗(yàn)證碼接口后锰悼,拷貝手機(jī)號和驗(yàn)證碼,粘貼到 tab2 中团赏,繼續(xù)測試注冊的接口

界面查看模式

Postman 的默認(rèn)的 Request 和 Response 是上下布局:

此處點(diǎn)擊右下角的Two pane view箕般,就變成左右的了:

[info] 左右布局的用途

對于數(shù)據(jù)量很大,又想要同時看到請求和返回的數(shù)據(jù)的時候舔清,應(yīng)該比較有用丝里。

多顏色主題

Posman 支持兩種主題:

深色主題

當(dāng)前是深色主題曲初,效果很不錯:

淺色主題

可以切換到 淺色主題:

API 文檔生成

在服務(wù)端后臺的開發(fā)人員測試好了接口后,打算把接口的各種信息發(fā)給使用此 API 的前端的移動端人員時杯聚,往往會遇到:

要么是用復(fù)制粘貼 -> 格式不友好 要么是用 Postman 中截圖 -> 方便看臼婆,但是不方便獲得 API 接口和字段等文字內(nèi)容 要么是用 Postman 中導(dǎo)出為 JSON -> json 文件中信息太繁雜,不利于找到所需要的信息 要么是用文檔械媒,比如去編寫 Markdown 文檔 -> 但后續(xù) API 的變更需要實(shí)時同步修改文檔目锭,也會很麻煩 這都會導(dǎo)致別人查看和使用 API 時很不方便。

-> 對此纷捞,Postman 提供了發(fā)布 API

預(yù)覽和發(fā)布 API 文檔 下面介紹 Postman 中如何預(yù)覽和發(fā)布 API 文檔痢虹。

簡要概述步驟

Collection

鼠標(biāo)移動到某個 Collection,點(diǎn)擊 三個點(diǎn)

Publish Docs

Publish

得到 Public URL

別人打開這個 Public URL主儡,即可查看 API 文檔

預(yù)覽 API 文檔

點(diǎn)擊分組右邊的大于號>

如果只是預(yù)覽奖唯,比如后臺開發(fā)員自己查看 API 文檔的話,可以選擇:View in web

等價于點(diǎn)擊Publish Docs去發(fā)布:

View in Web 后糜值,有 Publish 的選項(xiàng)(見后面的截圖)

View in Web 后丰捷,會打開預(yù)覽頁面:

比如:

奶牛云

https://documenter.getpostman.com/collection/view/669382-42273840-6237-dbae-5455-26b16f45e2b9

而右邊的示例代碼,也可以從默認(rèn)的 cURL 換成其他的:

發(fā)布 API 文檔

如果想要讓其他人能看到這個文檔寂汇,則點(diǎn)擊 Publish:

然后會打開類似于這樣的地址:

Postman Documenter

https://documenter.getpostman.com/collection/publish?meta=Y29sbGVjdGlvbl9pZD00MjI3Mzg0MC02MjM3LWRiYWUtNTQ1NS0yNmIxNmY0NWUyYjkmb3duZXI9NjY5MzgyJmNvbGxlY3Rpb25fbmFtZT0lRTUlQTUlQjYlRTclODklOUIlRTQlQkElOTE=

點(diǎn)擊 Publish 后病往,可以生成對應(yīng)的公開的網(wǎng)頁地址:

打開 API 接口文檔地址:

https://documenter.getpostman.com/view/669382/collection/77fd4RM

即可看到(和前面預(yù)覽一樣效果的 API 文檔了):

如此,別人即可查看對應(yīng)的 API 接口文檔骄瓣。

已發(fā)布的 API 文檔支持自動更新

后續(xù)如果自己的 API 接口修改后:

比如:

(后來發(fā)現(xiàn)停巷,不用再去進(jìn)入此預(yù)覽和發(fā)布的流程,去更新文檔榕栏,而是 Postman 自動支持)

別人去刷新該文檔的頁面:

https://documenter.getpostman.com/view/669382/collection/77fd4RM

即可看到更新后的內(nèi)容:

參考資料

主要參考:Github: api_tool_postman

Manage environments

postman-變量/環(huán)境/過濾等 - 簡書

Postman 使用手冊 3——環(huán)境變量 - 簡書

postman 使用之四:切換環(huán)境和設(shè)置讀取變量 - 喬葉葉 - 博客園

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末畔勤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扒磁,更是在濱河造成了極大的恐慌庆揪,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妨托,死亡現(xiàn)場離奇詭異缸榛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)兰伤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門内颗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人医清,你說我怎么就攤上這事起暮÷舭保” “怎么了会烙?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵负懦,是天一觀的道長。 經(jīng)常有香客問我柏腻,道長纸厉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任五嫂,我火速辦了婚禮颗品,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沃缘。我一直安慰自己躯枢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布槐臀。 她就那樣靜靜地躺著锄蹂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪水慨。 梳的紋絲不亂的頭發(fā)上得糜,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機(jī)與錄音晰洒,去河邊找鬼朝抖。 笑死,一個胖子當(dāng)著我的面吹牛谍珊,可吹牛的內(nèi)容都是我干的治宣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抬驴,長吁一口氣:“原來是場噩夢啊……” “哼炼七!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起布持,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤豌拙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后题暖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體按傅,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年胧卤,在試婚紗的時候發(fā)現(xiàn)自己被綠了唯绍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡枝誊,死狀恐怖况芒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叶撒,我是刑警寧澤绝骚,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布耐版,位于F島的核電站,受9級特大地震影響压汪,放射性物質(zhì)發(fā)生泄漏粪牲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一止剖、第九天 我趴在偏房一處隱蔽的房頂上張望腺阳。 院中可真熱鬧,春花似錦穿香、人聲如沸亭引。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痛侍。三九已至,卻和暖如春魔市,著一層夾襖步出監(jiān)牢的瞬間主届,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工待德, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留君丁,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓将宪,卻偏偏與公主長得像绘闷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子较坛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容