Postman安裝與簡單介紹
Postman簡介
Postman是一個 Chrome 擴充套件,能提供強大的 Web API HTTP 請求除錯功能。Postman能夠傳送任何型別的http請求,支援GET/PUT/POST/DELETE等,請求頭中可以附帶任何數量的headers資訊。Postman支援不同的認證機制(basic,digest,OAuth);Postman非常簡單易用,通過填寫URL、header、body等就可以傳送一個請求,這對於我們平時做一些簡單的測試是夠用的。Postman有一個“集合”功能,用於儲存所有請求相同的API/域,這個功能能方便我們重新發送請求
安裝
這是一種直接通過打包已經安裝的擴充套件程式方式,來進行安裝的(安裝包見附件)
1、 開啟Chrome瀏覽器的[擴充套件程式],勾選[開發者模式]
2、 點選[載入已解壓的擴充套件程式…]按鈕,找到剛剛下載的安裝包位置,點選確定
3、 看看Windows的開始選單,會突然多了一個[Chrome應用]的資料夾,點選裡面的Postman試一下
好了,到這裡Postman已安裝完畢
使用入門
這是開啟後,你第一眼看到的頁面
下面簡單介紹一下可能會使用到的幾個按鈕操作
重點看標記出來的幾個按鈕,從上到下、從左至右的順序依次是匯入、新建資料夾、儲存請求、下載。
匯入:用於匯入你或團隊儲存的API請求檔案,json格式。
新建資料夾:用於API請求分門別類,便於管理。
儲存請求:儲存你的API請求,返回值也能儲存下來。
下載:下載你測試通過的API請求,團隊共享,匯入。json格式,可手動編輯的。
響應狀態碼
是用以表示網頁伺服器HTTP響應的3位數字程式碼,訊息(1字頭),成功(2字頭),量定下(3字頭),請求錯誤(4字頭),伺服器錯誤(5、6字頭)
常見的:
200 OK:請求已成功,請求所希望的響應頭或資料日將隨次響應返回。
403 Forbidden:伺服器已經理解請求,但是拒絕執行它。
404 Not Found:請求失敗,請求所希望得到的資源未被在伺服器上發現。
500 Internal Server Error:伺服器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。一般來說,這個問題都會在伺服器端的原始碼出現錯誤時出現。
504 Gateway Timeout:作為閘道器或者代理工作的伺服器嘗試執行請求時,未能及時從上游伺服器(URI標識出的伺服器,例如HTTP、FTP、LDAP)或者輔助伺服器(例DNS)收到響應。
內建指令碼說明
1.清除一個全域性變數
Clear a global variable
對應指令碼:
postman.clearGlobalVariable(variable_key);
引數:需要清除的變數的key
2.清除一個環境變數
Clear an environment variable
對應指令碼:
postman.clearEnvironmentVariable(variable_key);
引數:需要清除的環境變數的key
3.response包含內容
Response body:Contains string
對應指令碼:
tests[Body matches string] =responseBody.has(string_you_want_to_search);
引數:預期內容
4.將xml格式的response轉換成son格式
Response body:Convert XML body to a JSON Object
對應指令碼:
var jsonObject = xml2Json(responseBody);
引數:(預設不需要設定引數,為介面的response)需要轉換的xml
5.response等於預期內容
Response body:Is equal to a string
對應指令碼:
tests[Body is correct] = responseBody === response_body_string;
引數:預期response
6.json解析key的值進行校驗
Response body:JSON value check
對應指令碼:
tests[Args key contains argument passed as url parameter] = 'test' in responseJSON.args
引數:test替換被測的值,args替換被測的key
7.檢查response的header資訊是否有被測欄位
Response headers:Content-Type header check
對應指令碼:
tests[Content-Type is present] = postman.getResponseHeader(Content-Type);
引數:預期header
8.響應時間判斷
Response time is less than 200ms
對應指令碼:
tests[Response time is less than 200ms] = responseTime 200;
引數:響應時間
9.設定全域性變數
Set an global variable
對應指令碼:
postman.setGlobalVariable(variable_key, variable_value);
引數:全域性變數的鍵值
10.設定環境變數
Set an environment variable
對應指令碼:
postman.setEnvironmentVariable(variable_key, variable_value);
引數:環境變數的鍵值
11.判斷狀態碼
Status code:Code is 200
對應指令碼:
tests[Status code is 200] = responseCode.code != 400;
引數:狀態碼
12.檢查code name 是否包含內容
Status code:Code name has string
對應指令碼:
tests[Status code name has string] = responseCode.name.has(Created);
引數:預期code name包含字串
13.成功的post請求
Status code:Successful POST request
對應指令碼:
tests[Successful POST request] = responseCode.code === 201 || responseCode.code === 202;
14.微小驗證器
Use Tiny Validator for JSON data
對應指令碼:
var schema = {
items: {
type: boolean
}
};
var data1 = [true, false];
var data2 = [true, 123];
console.log(tv4.error);
tests[Valid Data1] = tv4.validate(data1, schema);
tests[Valid Data2] = tv4.validate(data2, schema);
引數:可以修改items裡面的鍵值對來對應驗證json的引數
舉例說明
傳送一個get請求
Postman安裝完成後,我們來用它向百度傳送一個搜尋請求。比如搜“Postman”吧。
我們先在百度搜索框輸入“Postman”,點選“百度一下”,然後將瀏覽器位址列的內容複製到Postman的請求位址列,點選Send。這樣,我們就向百度首頁傳送了一個搜尋請求,這個請求是GET請求,如下圖所示。從圖中,我們可以看到本次請求的狀態碼Status是200,表示此次請求傳送成功。本次的請求響應時間是321ms,另外還可以響應的HTML文件。
修改請求的引數
在上圖中點選Params,Postman將會把url中的所有引數解析成一個一個的key-vaule對,如下圖所示。其中wd這個key對應的value是postman。我們將其改成“Chrome”,再次點選Send。請求的結果將變成搜尋“Chrome”的頁面HTML。
驗證請求結果
驗證返回的頁面中包括指定的字串:頁面中包括“Chrome”。
點選位址列下面的Tests選項卡,進入Tests指令碼編寫頁面。點選“Response body: Contains string”,將“string_you_want_to_search”替換成“Chrome”。點選Send傳送請求,執行測試。在下方Response區域的Test選項卡里,可以看到Pass “Body matches string”,表示該請求的響應體重包含“Chrome”字串,測試通過。
不通過測試顯示如下