接口測試之postman

第一部分:基礎(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有比較深刻的了解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,836評論 18 139
  • 02 你的收獲 你如果耐心的看完這篇文章,你會獲得些許收獲 對postman的使用有一個基(全)本(面)認知 可以...
    亭子青年閱讀 29,641評論 0 18
  • 博客已遷移,該文章也是我16年那會寫的了,經(jīng)過幾年P(guān)ostman已經(jīng)有不少變化,最近換團隊為了推廣這個工具,我對P...
    博客已遷移I米陽閱讀 45,737評論 29 92
  • 1.環(huán)境變量 很多時候,我們在開發(fā)時會有多個部署位置,比如一個用于測試,一個用于生產(chǎn)。通常的流程是先使用測試部署進...
    瘦到55KG好嗎閱讀 5,010評論 3 9
  • 我們總會許下各種各樣的承諾,比如:我以后再也不會遲到了,我死后由我的侄女繼承八達嶺那段長城,我會為你摘下那顆最美的...
    你看得見我閱讀 324評論 0 1