Postman介紹
目前測試API接口 方法很多,如使用fiddler的發送get,post的功能校驗,缺點:測試一遍之后,在回歸測試時需要手動在執行一遍,非常耗時,有人建議使用python的request模塊進行api接口測試,方法是好,但是在規定時間里沒有時間去做腳本。如果完成這個腳本,至少要一輪手工測試,從而才能了解到期望返回值是什么樣的。有沒有一種工具,手動執行完成后,不需要寫太多代碼,立馬可Postman是google開發的一款功能強大的網頁調試與發送網頁HTTP請求,并能運行測試用例的的Chrome插件。其主要功能包括:
模擬各種HTTP? ? requests
從常用的GET、POST到RESTful的PUT、DELETE …等等。 甚至還可以發送文件、送出額外的header。
Collection功能(測試集合)
Collection是requests的集合,在做完一個測試的時候, 你可以把這次的request存到特定的Collection里面,如此一來,下次要做同樣的測試時,就不需要重新輸入。而且一個collection可以包含多條request,如果我們把一個request當成一個test case,那collection就可以看成是一個test suite。通過collection的歸類,我們可以良好的分類測試軟件所提供的API.而且Collection還可以Import或是Share出來,讓團隊里面的所有人共享你建立起來的Collection。
人性化的Response整理
一般在用其他工具來測試的時候,response的內容通常都是純文字的raw, 但如果是JSON,就是塞成一整行的JSON。這會造成閱讀的障礙 ,而Postman可以針對response內容的格式自動美化。JSON、XML或是HTML都會整理成我們可以閱讀的格式
內置測試腳本語言
Postman支持編寫測試腳本,可以快速的檢查request的結果,并返回測試結果
Postman的缺點是只是支持http協議,支持平臺是windows和mac。還有就是postman中在headers切換按鈕,可以在key-value中設置任何字符串作為header的名稱。而header中的參數被屏蔽掉了。Pastman只是接受單獨接口的自動化測試,而且無法做到集成測試。
我們先打開Postman,可以看到界面分成左右兩個部分,右邊是我們后頭要講的collection,左邊是現在要講的request builder。在request builder中,我們可以通過Postman快速的隨意組裝出我們希望的request。一般來說,所有的HTTP Request都分成4個部分,URL,
method, headers和body。而Postman針對這幾部分都有針對性的工具。
要組裝一條Request, URL永遠是你首先要填的內容,在Postman里面你曾輸入過的URL是可以通過下拉自動補全的哦。如果你點擊Params按鈕,Postman會彈出一個鍵值編輯器,你可以在哪里輸入URL的Parameter,Postman會幫你自動加入到URL當中,反之,如果你的URL當中已經有了參數,那Postman會在你打開鍵值編輯器的時候把參數自動載入
點擊’Headers’按鈕,Postman同樣會彈出一個鍵值編輯器。在這里,你可以隨意添加你想要的Header attribute,同樣Postman為我們通過了很貼心的auto-complete功能,敲入一個字母,你可以從下拉菜單里選擇你想要的標準atrribute
要選擇Request的Method是很簡單的,Postman支持所有的Method,而一旦你選擇了Method,Postman的request body編輯器會根據的你選擇,自動的發生改變
如果我們要創建的request是類似于POST,那我們就需要編輯Request Body,Postman根據body type的不同,提供了4中編輯方式:form-data ? ? x-www-form-urlencoded ? raw ? binary
我這里創建一條發送給google geocode的request,看看是啥結果:
注意,在URL里面我使用了變量googleMaps,并用{{}}調用它,這里是類似于AngulaJs的語法(果然是同一家人),其返回值是:http://maps.googleapis.com/maps/api/geocode/json。而這個變量我是定義在我的環境GoogleApiTest里面的。這部分的內容會在接下來的文章里面講到。
點擊了Send之后,可以在Postman上直接看到response的內容,內容很漂亮,Postman根據內容檢索自動按JSON的格式顯示出來,同時我們可以清楚的看到status code和花費的時間。
寫到這,我想大家已經能夠了解如何用Postman組裝Request并且查看Response的內容了,那我們怎么用Postman去做測試呢,在這開始之前,我們先來看看Postman的左邊面板
這里包含了History和Collection,我們可以在History里面看到我們曾經發送過的HTTP Request,我們可以很方便的通過點擊上面的項重新構建我們的request。而右邊的Request Builder面板上,還有兩個按鈕,Pre-request Script和Tests。
Pre-request Script
定義我們在發送request之前需要運行的一些腳本,應用場景主要是設置全局變量和環境變量
Tests
定義發送Request之后,需要用腳本檢測的內容,也就是Test case的內容。
這里的的Tests是我們關鍵。
打開Tests,我們可以看到窗口分成兩部分,一部分是左邊的代碼窗口和右邊的Snippet窗口,點擊對應的snippet,postman會在左邊的窗口為我們生成對應的代碼,在下面的圖中,我選擇了“Response
body: is equal to a String”和“Response time is less than
200ms”,可以看到Postman在代碼窗口為我加載對應的語句,這里我把希望的responseBody改成了“No validparameters!!”.
這樣我就完成一條簡單的測試用例:
當HTTP Get
request沒有帶任何參數的時候,希望response的body返回字符串“No valid parameters!!”
responseTime小于200ms