第一部分:基礎(chǔ)篇
postman:4.5.1
1.安裝postman
進入postman官網(wǎng),如果是mac系統(tǒng)可以直接點擊mac app安裝
如果是windows的話,需要在windows下安裝chrome瀏覽器,然后在地址欄輸入chrome://extensions,勾選開發(fā)者模式
然后將下載的postman插件解壓,瀏覽器點擊加載已解壓的擴展程序,選擇插件所在目錄就可以了
2.測試第一個api,以豆瓣開發(fā)者api為例
這個接口的method為get,postman默認為get,在url欄輸入被測接口
在接口文檔中,q與tag其中的一個是必填項,所以這里需要配置參數(shù),點擊url右側(cè)的params,并輸入?yún)?shù)
點擊send按鈕發(fā)送請求,在下面可以看到返回的response,響應(yīng)的狀態(tài)碼,與響應(yīng)時間
response還可以以不同的方式查看,并且還可以看到cookies,headers信息
每次以不同的參數(shù)或者設(shè)置,在左側(cè)history都會幫我們記錄一個接口測試歷史,以便于下次重新調(diào)用
第二部分:進階篇
1.使用自帶的腳本對接口進行測試
點擊tests按鈕,可以看到右側(cè)有個snippets欄,里面就是postman內(nèi)置的測試腳本,輔助對接口進行測試
選擇其中的一個腳本,修改其中的參數(shù),再次點擊send,這時response的tests出現(xiàn)了一個1/1,說明執(zhí)行一個測試并且通過測試,綠色pass說明驗證通過
紅色fail說明測試不通過,一個接口可以寫多個腳本進行多次測試
2.內(nèi)置腳本說明
1. 清除一個全局變量
Clear a global variable
對應(yīng)腳本:
postman.clearGlobalVariable("variable_key");
參數(shù):需要清除的變量的key
2.清除一個環(huán)境變量
Clear an environment variable
對應(yīng)腳本:
postman.clearEnvironmentVariable("variable_key");
參數(shù):需要清除的環(huán)境變量的key
3.response包含內(nèi)容
Response body:Contains string
對應(yīng)腳本:
tests["Body matches string"] =responseBody.has("string_you_want_to_search");
參數(shù):預期內(nèi)容
4.將xml格式的response轉(zhuǎn)換成son格式
Response body:Convert XML body to a JSON Object
對應(yīng)腳本:
var jsonObject = xml2Json(responseBody);
參數(shù):(默認不需要設(shè)置參數(shù),為接口的response)需要轉(zhuǎn)換的xml
5.response等于預期內(nèi)容
Response body:Is equal to a string
對應(yīng)腳本:
tests["Body is correct"] = responseBody === "response_body_string";
參數(shù):預期response
6.json解析key的值進行校驗
Response body:JSON value check
對應(yīng)腳本:
tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
參數(shù):test替換被測的值,args替換被測的key
7.檢查response的header信息是否有被測字段
Response headers:Content-Type header check
對應(yīng)腳本:
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
參數(shù):預期header
8.響應(yīng)時間判斷
Response time is less than 200ms
對應(yīng)腳本:
tests["Response time is less than 200ms"] = responseTime < 200;
參數(shù):響應(yīng)時間
9.設(shè)置全局變量
Set an global variable
對應(yīng)腳本:
postman.setGlobalVariable("variable_key", "variable_value");
參數(shù):全局變量的鍵值
10.設(shè)置環(huán)境變量
Set an environment variable
對應(yīng)腳本:
postman.setEnvironmentVariable("variable_key", "variable_value");
參數(shù):環(huán)境變量的鍵值
11.判斷狀態(tài)碼
Status code:Code is 200
對應(yīng)腳本:
tests["Status code is 200"] = responseCode.code != 400;
參數(shù):狀態(tài)碼
12.檢查code name 是否包含內(nèi)容
Status code:Code name has string
對應(yīng)腳本:
tests["Status code name has string"] = responseCode.name.has("Created");
參數(shù):預期code name包含字符串
13.成功的post請求
Status code:Successful POST request
對應(yīng)腳本:
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
14.微小驗證器
Use Tiny Validator for JSON data
對應(yīng)腳本:
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);
參數(shù):可以修改items里面的鍵值對來對應(yīng)驗證json的參數(shù)
3.保存api,點擊save按鈕,找到save as按鈕,點擊
這時我們可以修改request name 也可以寫一下請求的描述
接下來新建一個接口集合,寫一個集合的名字,點擊保存
然后在左側(cè)功能區(qū),找到collections欄目并點擊
可以看到剛保存的api集合
4.運行api集合:找到頂層功能區(qū),找到runner按鍵,并點擊
選中剛才新建的api集合
點擊start test,可以在右側(cè)看到運行的結(jié)果
5.命令行運行接口集合:首先下載剛才創(chuàng)建的集合,點擊export,并保存到指定路徑
安裝postman命令行運行工具newman
注:如果提示沒有npm命令點擊此鏈接
安裝好newman后,命令行執(zhí)行,可以看到執(zhí)行結(jié)果
如果想要報告加上 -H filename 參數(shù)即可
第三部分:高級篇
1.環(huán)境變量的使用:在測試的過程中我們可能有多套測試環(huán)境,對應(yīng)每一套測試環(huán)境的ip可能是不同的,但是接口的請求,與參數(shù)又是一樣的,最笨的方法是每一個環(huán)境都寫一個測試集合,但是postman給我們提供了更為便捷的方法:使用環(huán)境變量
進入請求欄目,找到no environment
點擊no environment,找到manager environments,點擊進入頁面
![Uploading QQ20160812-2_610634.png . . .]
這個頁面可以進行管理環(huán)境變量,點擊add,添加一個環(huán)境變量
在這里輸入環(huán)境變量的名字,環(huán)境變量是以鍵值對的形式存在的,輸入環(huán)境變量的鍵值對,然后點擊add,進行保存
回到請求測試區(qū),點擊no environment ,選擇剛才新建立的環(huán)境變量,同時可以點擊右側(cè)的眼睛來查看環(huán)境變量與全局變量(后面會給大家介紹)
現(xiàn)在使用剛才新建的環(huán)境變量來替換uri,引用變量使用{{key}}的形式,將https://echo.getpostman.com用{{test_env}}來替換,并send發(fā)送請求
可以看到這里的結(jié)果和使用https://echo.getpostman.com是一樣的,這樣一組接口就可以實現(xiàn)寫一次而通過更換環(huán)境變量來實現(xiàn)切換不同的環(huán)境
2.全局變量的使用:雖然我們可能有多個測試環(huán)境,但是我們的測試數(shù)據(jù)每個環(huán)境用的都是一組,對于postman相當于只有一組全局變量,對應(yīng)多組環(huán)境變量
同樣的,點擊manager environment
點擊globals,進入環(huán)境變量的管理頁面
全局變量globals同樣是以鍵值對的形式保存的,輸入鍵值對,點擊save
回到請求測試區(qū),使用全局變量替換url的參數(shù),引用方法與環(huán)境變量的引用方法一致,替換后點擊send,查看結(jié)果
response依然以正確的內(nèi)容顯示出來
3.可以使用pre-request script功能來創(chuàng)建環(huán)境變量與全局變量,還有銷毀環(huán)境變量與全局變量,pre-request script是預置的腳本,執(zhí)行在請求之前
點擊pre-request script,進入預設(shè)腳本頁面
點擊右側(cè)的腳本,并設(shè)置全局變量與環(huán)境變量,并將url進行替換,點擊send發(fā)送,看到結(jié)果還是以正確的形式進行展示
同樣的我們也可以在tests里面使用預置的腳本進行設(shè)置與清除環(huán)境變量用法一樣
4.環(huán)境變量與全局變量都已經(jīng)進行了設(shè)置,我們還可以在tests里面進行引用,這樣就解決了上下游數(shù)據(jù)互傳的問題了了
點擊tests,切換到測試腳本頁面,輸入腳本
結(jié)束語:postman還有很多很強大的功能,這里只是拋磚引玉,讓大家對postman有比較深刻的了解