Postman 工具

序章

說到web服務接口,目前主流已經從SOAP的Web Service接口轉為RESTful API接口了,所以我們主要就是講解對REST API服務接口的測試椎眯。實際上眾多開發(fā)者對REST的理解程度不同,設計出來的系統(tǒng)有的并非完全遵循REST風格規(guī)范。由于REST是如此的火熱缓待,大家都聲稱自己的系統(tǒng)是RESTful的。許多系統(tǒng)前后端接口其實就是基于HTTP的CRUD(增查改刪)操作渠牲,分別使用了HTTP的POST旋炒、GET、UPDATE签杈、DELETE方法的請求瘫镇,就號稱是RESTful的,我們也不必深究芹壕。只要能較好的滿足目前系統(tǒng)的需求就行汇四。目前支持REST API測試的工具很多。我們選取其中一種用的比較多的Postman和大家講解一下怎樣使用工具進行REST API的自動化測試踢涌。

安裝和打開1.1

Postman有兩種形式的產品:一種是本地應用程序通孽,還有一種是Chrome瀏覽器的插件。官方推薦大家使用本地應用程序睁壁,我們也以本地應用程序Posman進行講解背苦。Postman的Window應用程序安裝包,可以到Posman官方網站下載https://www.getpostman.com/downloads/

image.png

點擊選擇相應操作系統(tǒng)上的安裝包后潘明,就可以下載了行剂。下載下來就是一個安裝包,大家雙擊安裝即可钳降,安裝好后厚宰,會在桌面上生成相應的圖標,雙擊即可打開遂填。圖標如下

image.png

Postman提供了一個多窗口多標簽的界面铲觉。瀏覽界面很簡單∠偶幔看下面的圖

image.png

Posman分為3個部分

  • 上面的Headerbar(表頭欄)

  • 左邊的sidebar
    側邊欄可以讓你查找和管理請求和集合撵幽。側邊欄分為兩個主要便簽History和Collections。
    我們在Postman應用程序中發(fā)送的每個請求都保存在“History”標簽窗口中

  • 右邊的Request Builder
    Request Builder 窗口是我們用來管理API請求的礁击,構建HTTP請求消息的地方

一個簡單的例子1.2

Request Builder就是用來讓我們發(fā)送基于HTTP的API請求盐杂,并查看服務器的響應內容的逗载。我們在url編輯框中輸入百度的網址,如下所示

image.png

然后链烈,點擊Send按鈕厉斟。隨后,我們可以看到界面如下:

image.png

大家注意强衡,紅色線上方是HTTP請求消息捏膨,下方是響應消息。我們可以看出食侮,下方給出的就是http響應的消息體內容何恶,也就是網頁顯示的html文檔內容瓶蝴。當我們點擊發(fā)送按鈕的時候晓猛。Postman就發(fā)出請求給百度網站服務器翩伪,百度網站服務器隨后就響應了這個請求,給我們返回響應消息眉尸。Postman接收到響應消息后域蜗,顯示出消息的結構給我們看。


image.png

構建http請求消息1.3

Request Builder可以幫助我們快速的構建HTTP請求噪猾。前面我們學習過HTTP請求的消息構成霉祸。HTTP請求消息中,我們可以構造的部分主要就是URL袱蜡,Method(請求方法)Headers(請求頭)丝蹭,消息體。Postman可以讓我們方便的構建這些內容坪蚁。

選擇請求方法1.3.1

Postman里面可以非常方便的選擇HTTP請求的方法奔穿。我們可以根據接口定義,選擇不同的HTTP請求的方法敏晤。如下圖所示

image.png

url參數的構建1.3.2

很多的時候贱田,我們的url請求是有參數的,這里我們運行下restapi-teach系統(tǒng)嘴脾,用管理員賬號登錄男摧,進入課程管理界面。打開chrome瀏覽器的開發(fā)者工具欄译打,然后點擊添加課程耗拓,在界面上輸入一門課程信息。我們在開發(fā)者工具欄的網絡包標簽頁里面可以發(fā)現扶平,列出課程管理時帆离,瀏覽器會發(fā)出一個請求如下:http://localhost/api/mgr/sq_mgr/?action=list_course&pagenum=1&pagesize=20

image.png

也可以用Fiddler

image.png

看請求消息點擊Inspectors蔬蕊,Haders看頭如果要看整個消息點擊Raw(原始的消息格式)

這個就是REST API的調用结澄,用來列出課程信息的哥谷。大家注意,這url中麻献,問號后面的部分action=list_course&pagenum=1&pagesize=20 術語叫做query string们妥。而這里面用&符號隔開就是一個個參數。這里包括pagenum(它的值為1)勉吻、pagesize(它的值為20)监婶。我們可以把這個http請求直接拷貝到Postman Builder Req的地址欄里面,點擊send得到如下結果:

image.png

說明我們可以直接用Postman直接發(fā)送該http請求給后端的web服務齿桃,web服務會給出響應消息惑惶,返回課程信息列表。
如果我們點擊Params按鈕短纵,就可以看到Postman把url請求的參數顯示在下面的表格中带污,如下圖所示

image.png

在表格中編輯更加清晰一些。參數值是字符串香到,而有些字符出現在參數字符串中會有問題鱼冀,比如&、空格悠就、百分號等等千绪,如果出現了這樣的字符,我們必須要將這些字符替換成相應的轉義字符梗脾,我們可以用Postman的encodeURIComponent荸型。比如‘a b’經過轉換后,就變成了‘a%20b’炸茧,也可以直接寫在Params里面帆疟,比如剛剛說的例子pagesize=20&,這樣寫就可以了他會自動轉義

image.png

如果有些字符它不進行轉義的話比如=

image.png

可以強制的讓他轉義宇立,選中右鍵點擊它選擇 encodeURIComponent

image.png

就可以了


image.png

請求頭的構建1.1.3

有些消息需要特殊的請求頭在里面踪宠,有些消息的請求頭會存放session、token數據在里面妈嘹,放在請求頭里面的柳琢,這個時候我們可以自己構建請求頭,不是所有的請求頭都需要構建润脸,常見的請求頭不需要構建柬脸,比如說我們剛才發(fā)送了的幾個。下面再給大家介紹一個Posman 的小技巧毙驯,點擊View-->Show Postman Console他會新打開一個窗口

image.png

這個時候你發(fā)送消息點擊Send他會把消息以一種好看的方式顯示在這里面

image.png

比如你點Raw他也可以看到原始的消息倒堕,原始的消息里面有一部分請求的請求信息,這個請求頭我并沒有在Postman里面填寫這些請求頭爆价,

image.png

比如accept垦巴、host這些都不是我選的媳搪,他是自動添加上去的不需要你寫

假如說根據接口文檔我們要添加一個username的請求頭值是ql,然后添加一個password骤宣,假如必須要這兩個字段在請求頭里面秦爆,那你就根據文檔把他加上去,編輯好以后憔披,點擊send等限,發(fā)送http請求中就會攜帶這些添加的頭部

image.png

就會看到這里面多了username和password

image.png

請求體的構建1.1.4

有的時候,我們發(fā)送HTTP請求需要攜帶消息體芬膝。最常見的就是POST請求望门。restapi-teach系統(tǒng),用管理員登錄賬號锰霜,進入課程管理頁面怒允。打開chrom瀏覽器的開發(fā)者工具欄,然后點擊添加課程锈遥,在界面上輸入一門課程的信息纫事。

image.png

點擊創(chuàng)建后,我們在開發(fā)者工具欄的網絡包標簽頁里面可以發(fā)現所灸,瀏覽器會發(fā)出一個POST請求丽惶。這個請求也是一個REST API,用來添加一門課程的爬立。

image.png

Content-Length消息體字節(jié)的個數钾唬。注意他的消息體格式叫From Data就是URL encoded,決定消息體是什么格式通常在消息頭里面有一個字段跟他對應的Content-Type侠驯,比如這里就是application/x-www-from-urlencoded抡秆,這種格式非常常見的請求體類型。這種格式其實跟大家講就是他這里面消息體的格式內容如果點擊view source(看原始的內容)

image.png

這個格式內容其實跟那天講的URL參數是一樣的吟策。參數之間&隔開儒士,然后參數名等于參數值。其實urlencoded就是我們那天講的URL參數的格式(參數名等于參數值)檩坚,只是把這個位置從URL這邊移到了消息體里面了(Form Data)着撩,根據消息格式我們可以在Postman里面構建一模一樣的請求,填入如下URL和Body信息匾委,點擊發(fā)送

image.png

隨后刷新網頁拖叙,可以發(fā)現,也能添加一門課程信息赂乐,界面如下:

image.png

Content-Type為application/x-www-from-urlencoded的這種類型的消息體薯鳍,其實和前面的querystring的格式是一樣,通暢挨措,攜帶參數的在消息體中的REST API請求挖滤,其頭部的Content-Type字段除了application/x-www-from-urlencoded外崩溪,比較常見的還有application/json(序列化)和application/xml,分別對應json格式的文本和xml格式的文本壶辜。這種情況下,用Request Builder來構造消息體担租,需要選擇類型為raw砸民,并且在text下拉框中選擇相應的類型,并且在body編輯框中直接輸入相應格式的文本奋救。如下圖所示

image.png

Collection 和 Folder作用

Web API接口是有n多個API請求和響應組成的岭参。而這些API請求往往可以根據他們的功能相關進行分類。比如我們教管系統(tǒng)中的API就可以分為:課程管理API尝艘,包括課程的增刪改查演侯。老師管理API,包括老師的增刪改查背亥,培訓班管理API秒际,包括培訓班管理的增刪改查。學生管理API狡汉,包括學生的增刪改查等娄徊。
Postman中,我們可以用Collection 和 Folder對API進行分類存放和管理盾戴。如果我們創(chuàng)建的API請求不存放在Collection中寄锐,缺省會放在History欄目里面,這樣不是很好尖啡,不方便我們進行管理

Collection 和 Folder

在左側邊欄中橄仆,點擊Collection標簽,隨后點擊創(chuàng)建圖標衅斩,如下圖所示

image.png

隨后輸入Collection的名稱即可盆顾。創(chuàng)建好的Collection會出現在下方,如下所示

image.png

我們可以在創(chuàng)建好的Collection畏梆,一層層的建立Folder椎扬。只需右鍵點擊那個Collection,在彈出的菜單中選擇Add Folder即可具温。如果要在某個Folder中建立子Folder蚕涤,只需右鍵點擊那個Folder,在彈菜單中選擇Add Folder即可铣猩。通常一個產品的API接口測試揖铜,我們可以創(chuàng)建一個Collection和其對應。然后根據各個API的功能达皿,分成不同的Test Suite天吓,對應到不同的Folder中贿肩。

現在我們已經創(chuàng)建好文件夾了,下面我們把請求保存到文件夾中龄寞,點擊save

image.png

點擊之后會又API的目錄讓你選

image.png

這里我們可以給API起名字汰规,比如這里我們命名為“添加課程”。缺省的話是已URL為名字物邑,這個名字不直觀溜哮。

image.png

然后點擊保存,我們可以看到就保存到里面了

image.png

API還有導入導出功能色解,這里我們大概介紹一下

什么時候會用到導入導出呢茂嗓?比如我們API請求都構建好了Collection寫了很多,我們寫好之后測試人員可能不止一個科阎,假如有一天我們請假休息了述吸,需要同事去測試,這個時候同事不需要在他的Postman重新寫一遍锣笨,這個時候就需要導出來Export

image.png

可以導出到一個目錄里面去蝌矛,這個地方不要動他,就選擇最新的就可以了错英,

image.png

然后點擊Export選擇目錄就可以朴读,下面說下怎么導入點擊Import

image.png

然后點擊Choose Files

image.png

選擇需要導入的文件就可以了。


Postman還有一個共享的功能特別是自己共享走趋。比如說你兩個工作環(huán)境下衅金,比如你在實驗室里有一臺機器,辦公區(qū)域也有臺機器簿煌。你在辦公區(qū)域開發(fā)了一些內容氮唯,這個時候你可能帶去實驗室里面去用,這個時候怎么弄呢姨伟,直接拷出來放在U盤里面或者通過網絡發(fā)過去這樣太麻煩惩琉,這個時候可以注冊一個賬號,有了賬號之后只要你登錄同一個賬號夺荒,你這個賬號里面曾經創(chuàng)建的數據都會自定的保存起來瞒渠。

點擊登錄


image.png

沒有賬號點擊Create Account創(chuàng)建

image.png

登錄之后這個賬號曾經用過的信息他會同步過來

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市技扼,隨后出現的幾起案子伍玖,更是在濱河造成了極大的恐慌,老刑警劉巖剿吻,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窍箍,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機椰棘,發(fā)現死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門纺棺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人邪狞,你說我怎么就攤上這事祷蝌。” “怎么了帆卓?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵巨朦,是天一觀的道長。 經常有香客問我鳞疲,道長罪郊,這世上最難降的妖魔是什么蠕蚜? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任尚洽,我火速辦了婚禮,結果婚禮上靶累,老公的妹妹穿的比我還像新娘腺毫。我一直安慰自己,他們只是感情好挣柬,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布潮酒。 她就那樣靜靜地躺著,像睡著了一般邪蛔。 火紅的嫁衣襯著肌膚如雪急黎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天侧到,我揣著相機與錄音勃教,去河邊找鬼。 笑死匠抗,一個胖子當著我的面吹牛故源,可吹牛的內容都是我干的。 我是一名探鬼主播汞贸,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼绳军,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了矢腻?” 一聲冷哼從身側響起门驾,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎多柑,沒想到半個月后猎唁,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年诫隅,在試婚紗的時候發(fā)現自己被綠了腐魂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡逐纬,死狀恐怖蛔屹,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情豁生,我是刑警寧澤兔毒,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站甸箱,受9級特大地震影響育叁,放射性物質發(fā)生泄漏。R本人自食惡果不足惜芍殖,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一豪嗽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豌骏,春花似錦龟梦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒂窒,卻和暖如春躁倒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洒琢。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工秧秉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纬凤。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓福贞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親停士。 傳聞我的和親對象是個殘疾皇子挖帘,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內容