PostMan是一款不可多得的發包工具

 1、下載

首先說明,下載地址:https://www.getpostman.com/apps選擇你的平臺安裝文件,進行下載。

 

2、開始親密接觸

打開軟件,輸入被測接口的url地址,點擊“Params”設置請求參數,選擇請求方法,如“GET”,“POST”。點擊“Send”。一個簡單的請求過程就完成了。發送完請求後,可以查看接口返回的json信息。下面來介紹一些常用功能和使用技巧。

​​​​​​​2.1  使用測試用例集管理被測接口

Postman提供了“Collections”功能,可以理解爲一個測試集合。在軟件左側,點擊創建測試集,彈出創建窗口,填寫集合名稱和被測接口的描述。這樣一個測試集合就創建好了。Postman還支持在這個集合下繼續創建目錄。

根據實際情況,將被測接口分類歸納到一起。

​​​​​​​2.2  驗證接口返回

Postman不光可以發送請求,通過Tests功能,還可以驗證返回結果的正確性。在頭信息編輯區域,選擇“Tests”。

左側爲編輯區域,可以自己寫JavaScript代碼對結果進行校驗,右側Postman提供的一些常用的測試腳本,這些腳本基本可以滿足日常的測試工作。點擊相應的測試腳本,如“Response body:Contains string”,顧名思義這是校驗在Response中是否存在指定的文本。選擇完成後,腳本區域會自動幫寫好樣例代碼,測試人員只需要稍作修改即可。校驗Price字段是否存在。

下面是常用示例。如下代碼清單所示。

 

  1.     tests["返回內容爲百度"] = responseBody === "百度";
  2.     tests["Response time 小於200毫秒"] = responseTime > 200;
  3.     tests["Status code is 200"] = responseCode.code === 200;
  4.     postman.setEnvironmentVariable("key", "value");
  5.     postman.setGlobalVariable("key", "value");
  6.     var jsonObject = xml2Json(responseBody);
  7.     //檢查json值。接口返回內容爲:
  8.     { 
  9.       "status": 301, 
  10.       "message": "無結果", 
  11.       "lists": [11] 
  12.     }
  13.     //腳本示例
  14.     var jsonData = JSON.parse(responseBody);
  15.     tests["Your test name"] = jsonData.value === 100;
  16.     tests["狀態碼爲301"] = jsonData["status"] == "301";
  17.     tests["message"] = jsonData["message"] == "無結果";
  18.     tests["list"] = jsonData["lists"][0] == "11";

tests["xxx"]xxx在一個腳本中如果出現多次,那麼只執行第一個,所以不要重複。

​​​​​​​3  全局變量解決上下文依賴

 

在測試過程中,經常會用遇到當前接口依賴於其他接口數據,或是通過cookie校驗當前接口請求時是否是登錄用戶。可以通過Postman提供的環境變量/全局變量功能來解決這個問題。假設接口B的入參依賴於接口A,可以創建一個測試工具集,然後保存A和B接口,注意在測試集中的順序。在接口A的Tests裏,獲取需要的內容,並設置爲全局變量,然後在B接口的入參中使用該全局變量。 例:一個登錄頁面A,登錄接口B,A頁面發起B接口請求時,都要帶上一個由A頁面html中特定位置一段隨機字符串,作爲B接口請求Body中的token值。 在測試集中創建A,在Tests中獲取token值。如下代碼清單所示。

 

  1. var pattern = /[a-z0-9A-Z]{40}/;
  2. var _token = responseBody.match(pattern)[0];
  3. postman.setGlobalVariable("_token", _token);

然後繼續創建B,在B的Body中,輸入key:tokenValue{{token}},這樣當運行整個測試集時,B請求就可以獲得正確的token去請求。 當再有一個接口C,依賴於B接口返回的cookie怎麼辦?思路和方法是一樣的。在B接口的Tests中獲取cookie用戶C接口。如下代碼清單所示。

 

  1. for (var i=0;i<responseCookies.length;i++){
  2. if (responseCookies[i]["name"]=="t" && responseCookies[i]["domain"]==" examples.com");
  3.             var t_c = responseCookies[i];
  4.     };
  5. var cookie = t_c["name"]+"="+t_c["value"]+";Max-Age=2592000; path=/; domain= examples.com.com; HttpOnly";
  6. postman.setGlobalVariable("cookies", cookie);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章