接口測試:Postman 高級用法

Postman是一款強大的API接口測試工具。


有許多不容易發(fā)現(xiàn)的好用的功能,下面簡單介紹其中一部分功能。詳細(xì)內(nèi)容可以參考文檔,官方還有視頻教程,非常方便入手。后續(xù)本博客會持續(xù)提供一些Postman使用的細(xì)節(jié)技巧,方便大家用Postman進行接口調(diào)試。


Navigating Postman

作為一個跨平臺的API測試工具,Postman有Win/Mac/Linux客戶端,還有瀏覽器擴展程序。不過官方建議使用客戶端,主要有以下優(yōu)點:


自帶cookie支持:請求可以使用同一域名下的cookie;

內(nèi)置代理支持:可以用來轉(zhuǎn)發(fā)請求,分析請求流量;

自定義請求頭:不必受限于Chrome中對于請求頭的限制;


內(nèi)置控制臺:在控制臺可以查看請求的詳細(xì)信息

簡單來說,postman 做的事情就是模擬瀏覽器發(fā)送請求,接受響應(yīng)。使用Postman可以模擬任何瀏覽器發(fā)出的請求,可以自由地構(gòu)造請求地址,請求方法,請求內(nèi)容,Cookies等。Postman的響應(yīng)內(nèi)容包括完整的響應(yīng)頭,響應(yīng)時間,響應(yīng)大小,cookie等內(nèi)容。


此外,postman還提供如下方便功能:Debugging and logs??可以在控制臺對postman的請求進行調(diào)試,特別是如果有pre-request或者test script時,使用控制臺可以方便debug。


原生postman可以通過CMD/CTRL + ALT + C打開控制臺。

Generate code snippets:將當(dāng)前請求導(dǎo)出為各種版本的請求代碼,比如python,js,curl等,方便用命令行測試;


Proxy:如果本機不能直接訪問服務(wù)端,可以在Settings-Proxy-Using custom/system proxy設(shè)置代理;


Capturing HTTP requests:有時候用手機訪問服務(wù)端時,我們可能需要借助fiddler來查看HTTP請求。postman也可以做相同的工作,只需要將postman作為代理轉(zhuǎn)發(fā)HTTP請求即可。


Certificates: 如果服務(wù)端要驗證客戶端證書,可以在Settings-Certificates-Add Certificate配置證書;


Environments and globals

我們在構(gòu)造API請求時,經(jīng)常會在多個地方使用相同的值,比如相同的請求域名,一些固定的參數(shù)值。這時候如果使用變量來保存相應(yīng)的值,然后在需要使用該值的地方用變量來代替會帶來不少好處,比如要改變這些值,只用在變量的定義地方作出改動即可。


man是一款強大的API接口測試工具,有許多不容易發(fā)現(xiàn)的好用的功能,下面簡單介紹其中一部分功能。詳細(xì)內(nèi)容可以參考文檔,官方還有視頻教程,非常方便入手。后續(xù)本博客會持續(xù)提供一些Postman使用的細(xì)節(jié)技巧,方便大家用Postman進行接口調(diào)試。


作為一個跨平臺的API測試工具,Postman有Win/Mac/Linux客戶端,還有瀏覽器擴展程序。不過官方建議使用客戶端,主要有以下優(yōu)點:


自帶cookie支持:請求可以使用同一域名下的cookie;

內(nèi)置代理支持:可以用來轉(zhuǎn)發(fā)請求,分析請求流量;

自定義請求頭:不必受限于Chrome中對于請求頭的限制;


內(nèi)置控制臺:在控制臺可以查看請求的詳細(xì)信息

簡單來說,postman 做的事情就是模擬瀏覽器發(fā)送請求,接受響應(yīng)。使用Postman可以模擬任何瀏覽器發(fā)出的請求,可以自由地構(gòu)造請求地址,請求方法,請求內(nèi)容,Cookies等。Postman的響應(yīng)內(nèi)容包括完整的響應(yīng)頭,響應(yīng)時間,響應(yīng)大小,cookie等內(nèi)容。


此外,postman還提供如下方便功能:

Debugging and logs:可以在控制臺對postman的請求進行調(diào)試,特別是如果有pre-request或者test script時,使用控制臺可以方便debug。原生postman可以通過CMD/CTRL + ALT + C打開控制臺。


Generate code snippets:將當(dāng)前請求導(dǎo)出為各種版本的請求代碼,比如python,js,curl等,方便用命令行測試;


Proxy:如果本機不能直接訪問服務(wù)端,可以在Settings-Proxy-Using custom/system proxy設(shè)置代理;


Capturing HTTP requests:有時候用手機訪問服務(wù)端時,我們可能需要借助fiddler來查看HTTP請求。postman也可以做相同的工作,只需要將postman作為代理轉(zhuǎn)發(fā)HTTP請求即可。


Certificates: 如果服務(wù)端要驗證客戶端證書,可以在Settings-Certificates-Add Certificate配置證書;

Environments and globals

我們在構(gòu)造API請求時,經(jīng)常會在多個地方使用相同的值,比如相同的請求域名,一些固定的參數(shù)值。這時候如果使用變量來保存相應(yīng)的值,然后在需要使用該值的地方用變量來代替會帶來不少好處,比如要改變這些值,只用在變量的定義地方作出改動即可。


Postman定義了4類變量,極大地方便了構(gòu)造請求以及對結(jié)果進行測試:


Global: 全局變量,postman中所有請求都可以訪問或者修改;


Environment: 構(gòu)造請求時可以選擇使用某個Environment,這樣就可以訪問或者修改該Environment下的所有變量;


Local: 腳本中定義的變量,只對腳本的當(dāng)前作用域有用;

Data: 只有在使用Collection Runner的時候,可以通過導(dǎo)入 Data Files 來構(gòu)造當(dāng)前測試集中用到的數(shù)據(jù)。


就像程序中的變量一樣,這里的變量也是有優(yōu)先級,如果在Environment中有和Global重名的變量,會優(yōu)先使用Environment中變量。上面4個變量的優(yōu)先級由上到下依次減弱。


在postman中使用變量有著很多意想不到的好處,比如:

Collection Runner中通過Data file來構(gòu)造不同的測試數(shù)據(jù),方便快速進行大量不同請求數(shù)據(jù)的測試;

可以在不同請求中傳遞值,比如在一個請求中產(chǎn)生流水號,將其設(shè)置為某個變量的值,下一個請求即可使用該變量值。


ScriptsPostman 內(nèi)置了Node.js的運行時環(huán)境,可以執(zhí)行JS腳本。這樣就帶來了很多激動人心的好處,比如構(gòu)建動態(tài)請求參數(shù),編寫強大的測試用例等。Postman中的Scripts分為2類:pre-request script: 在發(fā)送請求之前執(zhí)行的腳本,一般用來構(gòu)建請求參數(shù);


test script: 在獲取相應(yīng)之后執(zhí)行的腳本,一般用來做測試。不過需要注意,測試腳本運行在Sandbox環(huán)境,內(nèi)置了許多JS庫支持,方便進行測試。


Postman的Sandbox環(huán)境十分強大,比如:

通過提供postman.setNextRequest("request_name")實現(xiàn),可以很方便地在 Collection 中控制請求的執(zhí)行路徑;

提供了一系列內(nèi)置接口,方便對環(huán)境變量,請求或者相應(yīng)內(nèi)容進行訪問;


提供了 CryptoJS 庫,可以方便地進行加解密操作;

提供了 tv4 庫,可以對 Json Scheme進行測試;JSON Schema 定義了如何基于 JSON 格式描述 JSON 數(shù)據(jù)結(jié)構(gòu)的規(guī)范,進而提供數(shù)據(jù)校驗、文檔生成和接口數(shù)據(jù)交互控制等一系列能力。


Collections runs?Collections 是一系列請求的集合,postman通過collection來支持構(gòu)建請求工作流,自動化測試,請求的導(dǎo)入導(dǎo)出,持續(xù)集成等功能。


Collection 支持以下功能:

Sharing collections:可以將Collection中的請求導(dǎo)出分享給其他人;


Data formats:Postman可以導(dǎo)出環(huán)境變量,甚至可以將請求和環(huán)境變量等一起打包為一個Json,方便遷移所有的請求數(shù)據(jù)。


Collection的一大用處就是一次執(zhí)行其中所有的請求,這就是所謂的collection run。

1. 文件上傳

圖形界面端,Collection 中的請求不支持POST文件上傳,不過在導(dǎo)出Collection后,可以在json文件中配置文件路徑,然后使用 newman 進行文件上傳。詳細(xì)可以參考Postman官方博客:

Using Newman to run collections with file-post requests


不過文件上傳時必須指定文件路徑,不能用變量代替,也不能通過Data Files來設(shè)置不同的文件,不是很方便。所以我給官方提了Issue,目前該功能已經(jīng)納入 Feature,有望在后續(xù)版本中實現(xiàn)該功能。


這里就不得不贊一下Postman的社區(qū)支持了,基本上有任何問題,只要在官方Issue上提出,基本很快就會有Postman的工作人員提供支持。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,615評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,606評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,044評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,826評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,227評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,447評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,992評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,807評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,001評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,243評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,667評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,930評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,709評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,996評論 2 374

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

  • Postman是一款強大的API接口測試工具,有許多不容易發(fā)現(xiàn)的好用的功能,下面簡單介紹其中一部分功能。詳細(xì)內(nèi)容可...
    selfboot閱讀 8,494評論 6 25
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,785評論 18 139
  • Postman 接口測試神器 更好的體驗,請直接打開:當(dāng)前文章。 Postman 是一個接口測試和 http 請求...
    IT老馬閱讀 7,096評論 4 13
  • 雪映冰輝照蝶歸云夢醒舞花飛 【七言】平水韻 舞花飛雪映冰輝, 雪映冰輝照蝶歸。 輝照蝶歸云醒夢, 歸云醒夢舞花飛。...
    風(fēng)音云影閱讀 1,109評論 28 24
  • 1 我在樓下抽了第三根煙,然后撥通了敏兒的電話。 “你到底有沒有男朋友?”我開門見山。 “這個問題很重要嗎?” 我...
    洞洞2閱讀 1,090評論 6 7