接口測試:Postman 高級用法

Postman是一款強(qiáng)大的API接口測試工具恢筝。


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


Navigating Postman

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


自帶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的請求進(jìn)行調(diào)試祈秕,特別是如果有pre-request或者test script時,使用控制臺可以方便debug雏胃。


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

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


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


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


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


Environments and globals

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


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


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


自帶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的請求進(jìn)行調(diào)試晒哄,特別是如果有pre-request或者test script時睁宰,使用控制臺可以方便debug肪获。原生postman可以通過CMD/CTRL + ALT + C打開控制臺。


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


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


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


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

Environments and globals

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


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


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ù)憔晒,方便快速進(jìn)行大量不同請求數(shù)據(jù)的測試藻肄;

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


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


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


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

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

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


提供了 CryptoJS 庫趁仙,可以方便地進(jìn)行加解密操作;

提供了 tv4 庫垦页,可以對 Json Scheme進(jìn)行測試雀费;JSON Schema 定義了如何基于 JSON 格式描述 JSON 數(shù)據(jù)結(jié)構(gòu)的規(guī)范,進(jìn)而提供數(shù)據(jù)校驗(yàn)痊焊、文檔生成和接口數(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 進(jìn)行文件上傳他炊。詳細(xì)可以參考Postman官方博客:

Using Newman to run collections with file-post requests


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


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


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市锰茉,隨后出現(xiàn)的幾起案子呢蔫,更是在濱河造成了極大的恐慌,老刑警劉巖飒筑,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件片吊,死亡現(xiàn)場離奇詭異,居然都是意外死亡协屡,警方通過查閱死者的電腦和手機(jī)俏脊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肤晓,“玉大人爷贫,你說我怎么就攤上這事〔购叮” “怎么了漫萄?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盈匾。 經(jīng)常有香客問我腾务,道長,這世上最難降的妖魔是什么削饵? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任岩瘦,我火速辦了婚禮未巫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘担钮。我一直安慰自己橱赠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布箫津。 她就那樣靜靜地躺著狭姨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苏遥。 梳的紋絲不亂的頭發(fā)上饼拍,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機(jī)與錄音田炭,去河邊找鬼师抄。 笑死,一個胖子當(dāng)著我的面吹牛教硫,可吹牛的內(nèi)容都是我干的叨吮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼瞬矩,長吁一口氣:“原來是場噩夢啊……” “哼茶鉴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起景用,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤涵叮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后伞插,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體割粮,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年媚污,在試婚紗的時候發(fā)現(xiàn)自己被綠了舀瓢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡耗美,死狀恐怖京髓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情幽歼,我是刑警寧澤朵锣,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站甸私,受9級特大地震影響诚些,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一诬烹、第九天 我趴在偏房一處隱蔽的房頂上張望砸烦。 院中可真熱鬧,春花似錦绞吁、人聲如沸幢痘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颜说。三九已至,卻和暖如春汰聋,著一層夾襖步出監(jiān)牢的瞬間门粪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工烹困, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玄妈,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓髓梅,卻偏偏與公主長得像拟蜻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枯饿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

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

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