Postman初探

緣起

今天要測試一個新接口,返回值應該是現有6個接口返回值中data.CountNum之和。麻煩處有:javascript

1.用戶角色不一樣,接口返回值也有不一樣。所以要用到的接口不少。java

2.要對全部接口的返回值求和,再與新接口比較。web

3.須要屢次測試chrome

要解決這些問題,此次就好好用了用postman。在基本的POST/GET以外,postman能作的有不少。json

準備

目前postman的chrome app版本已再也不維護,推薦去官網下載客戶端版本,安裝即用。api

開始

界面

 

 

打開頁面後,可快速發起請求。postman對最經常使用的功能都強調顯示,分別是左上角的New(新建請求),Sync(同步),Send(發送請求),知足最多見的需求,開箱即用。其實,以前用到最多的功能也就僅限於此。此次會稍微多探索一些。app

參數化

問題中提到的這些請求,結構相似,參數都是三個或兩個,且都有loginid,請求頭中都須要包含authorization。所以天然能夠用參數化,配置多處數據。一來用起來省力,再者以後統一換參數時也更爲方便。框架

 

 

在collection處,選擇更多按鈕,點擊Edit,選擇Variables頁面,便可配置參數。可填形參,初始值,當前值。以後在collection內部調用時,採用{{variable_name}}的形式(相似web框架中的模板語言)。post

 

腳本

 

在request頁面,選擇Tests,便可編寫腳本。Pre-request Script,即請求發出前會執行的腳本,而Tests中的腳本會在請求完成後執行。注意,在collection配置時,也有Tests頁面,那裏編寫的腳本會在collection內的每一個request執行後都執行一遍。測試

腳本採用javascript編寫,可點擊左下角的console按鈕進行調試(快捷鍵是ctrl+alt+c)。postman內部的api可參考官方說明,變量能夠跨請求訪問,還有特殊的斷言語句,用來生成測試結果。此次編寫的腳本很簡單,大致思路是:

1.在collection內發送第一次請求時,初始化變量total_count,用以記錄各個接口返回的任務數量。

2.以後每次對接口請求後,解析出須要的數量,再將上一次的total_count加起來。這樣在完成全部請求後,就能得到全部接口的任務數量之和。

3.在collection最後,對待測試接口發起請求,獲得總任務數量,與total_count比較,返回測試結果。

運行

 

選擇collection,點擊運行按鈕,可依次執行整個collection內的請求。執行頁面能夠查看測試結果。

 

顯示爲FAIL即斷言未經過。

代碼

//請求1,2,3,4,5
pm.globals.set("total_count", 0);
res_json = JSON.parse(pm.response.json());
pm.globals.set("total_count", pm.globals.get("total_count") + res_json['data']['CountNum']); 
console.log(pm.globals.get("total_count"));

//請求6
res_json = JSON.parse(pm.response.json());
if( res_json.data.CountNum == null){
    console.log(pm.globals.get("total_count"));
}
else
{
    pm.globals.set("total_count", pm.globals.get("total_count") + res_json['data']['CountNum']); 
    console.log(pm.globals.get("total_count"));
}

//請求7
res_json = JSON.parse(pm.response.json());
let e2e_count = res_json['data']['CountNum'];

pm.test('e2e number should be equal to total count', function () {
      pm.expect(e2e_count).to.equal(pm.globals.get("total_count"));
  });

 

參考

postman下載地址 https://www.getpostman.com/downloads/

postman腳本介紹 https://learning.getpostman.com/docs/postman/scripts/intro_to_scripts

postman沙箱api說明 https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference

相關文章
相關標籤/搜索