1. 程式人生 > >玩轉postman(一)-----基礎

玩轉postman(一)-----基礎

postman的GUI介面以及各個元件介紹

主介面如下

開啟postman的GUI介面以及各個元素元件介紹

分為下三部分:

1、Head navigation bar (頭部導航欄):此部分有以下選項內容需要了解:

(1)New(新建按鈕):可以用來新建集合、請求、mock服務、監聽器、測試環境等(重要);

(2)import(匯入按鈕):可以用來匯入檔案 資訊、集合、資料夾、以及連結(tab);

(3)Runner(執行按鈕):用於執行集合(重要);

(4)新視窗增加按鈕:可以用來增加新的postman視窗、執行視窗、以及請求頁籤(tab);

(5):構建器和團隊選項,可以用於團隊庫和當前檢視的轉換;

(6)抓取api請求圖示:可以通過次按鈕抓取api(不常用)

(7) 同步狀態圖示:同步apid 請求已達到共享;

(8)設定圖示:管理postman的應用程式,設定postman主介面;

2、Side navigation bar :次部分包含內容如下:

(1)History:用postman發起過的任何請求,都會儲存在歷史選項卡里;;

(2)Collections:集合選項卡,可以是每個請求的集合、也可以是URL的集合;

3、work space:工作空間是postman使用的重點,對其務必熟悉;postman通過選項卡的形式在構建器中傳送和管理的請求資訊;

上部分是請求構建器,下部分是相應構建器;具體說明如下:

面對post請求如何使用postman進行測試:

用postman進行get請求:

如何在postman中進行引數化

 postman支援子啊介面請求中,對某個請求欄位,或者url進行引數化。對url進行引數化只需要將其配置成環境變數,然後在url中對其進行引用即可。

對url進行引數化

對介面中的某個請求欄位進行引數化

例項介面:

通過postman請求和響應如下:

此時我們想更換100個人,迭代請求apply介面,此時就需要name、certicode、age這三個key值進行引數化。postman本身支援三種引數化的方式。通過.text文件、通過.csv檔案以及json檔案。對於我而言,推薦大家採用第一種方式即.text方式進行引數化。因為操作簡單,json檔案的組織比較繁瑣,不太適用於多個引數需要引數化的場景,而.csv檔案對格式要求過高,會浪費精力。具體實現步驟如下:

1、組織需要的引數化的引數檔案,檔案內容展示如下:

引數之間需要用英文字元下單逗號間隔,編碼需要utf-8,儲存的檔案字尾為.text即可;

2、在Apply介面的Pre-request Script出寫入如下指令碼,讀取text引數化檔案。

var apply="apply.text";   //宣告引數化檔案

var name=apply.name;  //讀取第一個引數name

pm.environment.set("name","name");   //將name的值依次賦給請求中的name

var age=apply.age;

pm.environment.set("age","age");

var certicode=apply.certicode;

pm.environment.set("certicode","certicode");

3、將原請求中的具體值分別進行引數替換:替換後的請求為:

{

  “interfaceType”:"apply",

  "name":{{name}}",

  "age":"{{age}}",

  "certicode":"{{certicode}}"

}

4、開啟runner,設定迭代次數且匯入引數化檔案;

 

5、點選“Run 360足球聯賽”可以看到總計數迭代的次數為我設定的10,當然如果各個次數個數為100,就設定為100即可;執行完成後,效果圖如下:

6、開啟控制檯,可以檢查下每次請求是否按照引數進行取值;

上圖知識截了第一次迭代、第二次迭代的請求,可見取的是引數化檔案對應的第二行、第三行的值,不從第1行讀取,是因為第一行是引數化列表;

使用runner對定時任務、請求進行迭代配置

配置定時任務的思路其實就是引數化介紹的runner介面控制,選擇迭代次數以及每個定時任務之間的間隔時間即可;

用js指令碼設定檢查點(斷言)

以上宣告postman支援引數迭代,那麼在結合上其身的js指令碼,我們還可以用postman做介面的自動化驗證,當然其有不足之處,體現在不能實現錯誤重試、生成測試報告以及錯誤資訊的實時採集。但是滿足日常的流程驗證(現在也叫契約測試)是綽綽有餘的。

在runner下執行準備好的apply 、sign、login三個介面,點選:Run Summary

執行結束後,不難看出,三個介面只是運行了,或者說滿足了被呼叫的條件,但無法通過這個執行判斷出介面到底是不是按照要求來做的、也就是響應時間、響應碼、響應引數等是否滿足約束。為了解決這個問題,我們為其新增斷言(或者叫檢查點);拿apply介面為例,學習檢查點相關內容:

以下介紹常用的指令碼:

1、設定環境變數

pm.environment.set("variable_key","variable_value");

2、檢查http請求的狀態碼是否於預期一致

pm.test("Status code is 200",function() {

  pm.response.to.have.status(200);

});

3、檢查JSON響應中包含某個欄位

pm.test("Your test name",function () {

  var jsonData=pm.response.json();

  pm.expect(jsonData.value).to.eql("欄位名稱");

});

4、檢查響應體中可以解析某個指定欄位的值

pm.test("Body matches string",function () {

  pm.expect(pm.response.text ()).to.include("string_you_want_to_search");

});

 5、檢查響應時間的長短

pm.test("Response time is less than 200ms",function () {

  pm.expect(pm.response.responseTime).to.be.below(200);

});

下面在apply介面中加入上面的檢查點:

此時,可以發現執行結果飽滿了很多,不單單是介面的執行,還有相應的檢查點判斷,如上為apply介面設定的檢查點定時pass的,這樣的話,後續介面發生變更,想要驗證介面是否滿足約束,直接執行次檢查點案例即可;