接口測試之postman

轉載地址:http://www.jianshu.com/search?q=%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E4%B9%8Bpostman&page=1&type=notes


第一部分:基礎篇

postman:4.5.1
1.安裝postman
進入postman官網,如果是mac系統可以直接點擊mac app安裝



如果是windows的話,需要在windows下安裝chrome瀏覽器,然後在地址欄輸入chrome://extensions,勾選開發者模式



然後將下載的postman插件解壓,瀏覽器點擊加載已解壓的擴展程序,選擇插件所在目錄就可以了


2.測試第一個api,以豆瓣開發者api爲例



這個接口的method爲get,postman默認爲get,在url欄輸入被測接口



在接口文檔中,q與tag其中的一個是必填項,所以這裏需要配置參數,點擊url右側的params,並輸入參數



點擊send按鈕發送請求,在下面可以看到返回的response,響應的狀態碼,與響應時間



response還可以以不同的方式查看,並且還可以看到cookies,headers信息



每次以不同的參數或者設置,在左側history都會幫我們記錄一個接口測試歷史,以便於下次重新調用


第二部分:進階篇

1.使用自帶的腳本對接口進行測試
點擊tests按鈕,可以看到右側有個snippets欄,裏面就是postman內置的測試腳本,輔助對接口進行測試



選擇其中的一個腳本,修改其中的參數,再次點擊send,這時response的tests出現了一個1/1,說明執行一個測試並且通過測試,綠色pass說明驗證通過



紅色fail說明測試不通過,一個接口可以寫多個腳本進行多次測試


2.內置腳本說明

 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的參數

3.保存api,點擊save按鈕,找到save as按鈕,點擊



這時我們可以修改request name 也可以寫一下請求的描述



接下來新建一個接口集合,寫一個集合的名字,點擊保存



然後在左側功能區,找到collections欄目並點擊



可以看到剛保存的api集合


4.運行api集合:找到頂層功能區,找到runner按鍵,並點擊



選中剛纔新建的api集合



點擊start test,可以在右側看到運行的結果


5.命令行運行接口集合:首先下載剛纔創建的集合,點擊export,並保存到指定路徑



安裝postman命令行運行工具newman



注:如果提示沒有npm命令點擊此鏈接
安裝好newman後,命令行執行,可以看到執行結果



如果想要報告加上 -H filename 參數即可


第三部分:高級篇

1.環境變量的使用:在測試的過程中我們可能有多套測試環境,對應每一套測試環境的ip可能是不同的,但是接口的請求,與參數又是一樣的,最笨的方法是每一個環境都寫一個測試集合,但是postman給我們提供了更爲便捷的方法:使用環境變量
進入請求欄目,找到no environment



點擊no environment,找到manager environments,點擊進入頁面
![Uploading QQ20160812-2_610634.png . . .]




這個頁面可以進行管理環境變量,點擊add,添加一個環境變量



在這裏輸入環境變量的名字,環境變量是以鍵值對的形式存在的,輸入環境變量的鍵值對,然後點擊add,進行保存



回到請求測試區,點擊no environment ,選擇剛纔新建立的環境變量,同時可以點擊右側的眼睛來查看環境變量與全局變量(後面會給大家介紹)



現在使用剛纔新建的環境變量來替換uri,引用變量使用{{key}}的形式,將https://echo.getpostman.com用{{test_env}}來替換,並send發送請求



可以看到這裏的結果和使用https://echo.getpostman.com是一樣的,這樣一組接口就可以實現寫一次而通過更換環境變量來實現切換不同的環境

2.全局變量的使用:雖然我們可能有多個測試環境,但是我們的測試數據每個環境用的都是一組,對於postman相當於只有一組全局變量,對應多組環境變量
同樣的,點擊manager environment



點擊globals,進入環境變量的管理頁面



全局變量globals同樣是以鍵值對的形式保存的,輸入鍵值對,點擊save



回到請求測試區,使用全局變量替換url的參數,引用方法與環境變量的引用方法一致,替換後點擊send,查看結果



response依然以正確的內容顯示出來

3.可以使用pre-request script功能來創建環境變量與全局變量,還有銷燬環境變量與全局變量,pre-request script是預置的腳本,執行在請求之前
點擊pre-request script,進入預設腳本頁面



點擊右側的腳本,並設置全局變量與環境變量,並將url進行替換,點擊send發送,看到結果還是以正確的形式進行展示



同樣的我們也可以在tests裏面使用預置的腳本進行設置與清除環境變量用法一樣

4.環境變量與全局變量都已經進行了設置,我們還可以在tests裏面進行引用,這樣就解決了上下游數據互傳的問題了了
點擊tests,切換到測試腳本頁面,輸入腳本



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章