玩玩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的,這樣的話,后續接口發生變更,想要驗證接口是否滿足約束,直接運行次檢查點案例即可;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM