Postman常用功能詳解,常用請求方法


1. 基本功能介紹

         網上有很多介紹基本功能文章,大家可以自己找來看看,下面是我覺得比較好的一篇

2.Postman工作原理

        在使用一款工具前,了解它的工作原理才能讓你更快更有效的上手。我們知道對於一個API來說,輸入的請求(Request)包括URL、method、Request Cookies、Request Headers和Request Body;收到請求后,API會回復響應(Response),包括Response Headers和Response Body。我們之所以可以用Postman作為我們的API自動化測試工具,是因為它能很好的模擬並向API發送Request,接收API發回的Response,並通過寫在Test中的JS函數來對Response做斷言。當然,Postman還有環境變量、Pre-request Script等更高級的功能,不過只要有了這些最基本功能就可以成為一個合格的API測試工具了。

3.常用功能詳解

3.1 Request部分

    Request部分用於組合Request的各部分並向API發送。

3.1.1請求URL

         不管發送任何請求,確定要填寫的URL是第一件事,尤其是當你習慣復制一個類似的用例改寫成新用例的時候,很容易忽略URL是否完全一致,有時候出了問題排查半天發現原來少了一級URL……

        有些URL中會自帶請求參數(一般都是key=value的形式),點擊URL后面的Params按鈕可以打開參數編輯器,Postman會自動將網址分成鍵-值對兩部分。

注意:如果沒有為URL指定協議,Postman會自動將http://添加到URL的開頭。

3.1.2 請求方法

        根據不同的API操作需要使用不同的請求方法,Postman有很齊全的方法類型。同時,不同的請求方法也會影響Request Body的編輯區,比如選擇GET方法時,Body區會處於無法編輯狀態。

3.1.3 Authorization

        Authorization(鑒權信息)其實是Headers的一部分,但由於這個參數的形式多變且非常重要,Postman將其獨立出來方便用戶進行設置。當在postman中選擇Authorization的類型的時候,可以看到一共有10個類型,這里簡單介紹一下常見類型,以后用到某種的時候可以再詳細了解:可參考https://www.jianshu.com/p/8bb80594d126

a Inherit auth from parent (從父類繼承身份驗證)

        當用戶在一個集合內添加文件夾時,這個新添加的文件夾會默認使用Inherit auth from parent,即這個子文件夾內的每個Authorization類型都與父類的一致。比如在下圖中,我在塊網關中的Authorization類型是Bearer Token,則test_add中的所有請求將使用Bearer Token。

b. No Auth

        如果不需要授權參數發送請求時,使用“No Auth”

c. Bearer Token

        Bearer Token是安全令牌。任何帶有Bearer Token的用戶都可以使用它來訪問數據資源,而無需使用加***。

d. Basic Auth

         Basic Auth是一種授權類型,需要驗證用戶名和密碼才能訪問數據資源

3.1.4 請求Headers 

        在Headers區域可以以鍵值對的形式來設置請求頭內容,包括發送內容格式,要求返回消息語言等等。如果設置了Authorization,在發送請求時也會將鑒權信息自動填入Headers中

3.1.5 請求Cookies

        在Postman的Native App中,我們可以通過Cookie管理器管理每個域名對應的Cookie。(我目前接觸到的內部產品中還沒有需要使用Cookie的部分)。

3.1.6 請求Body

        Request的主要內容在Body的輸入區中編輯。在輸入區上方有四個選項,根據請求體類型有不同的輸入UI:

a.form-data

        Web表單用於傳輸數據的默認編碼,一般模擬網站上填寫表單並提交時使用這個選項。

b. x-www-form-urlencoded

        該編碼與URL參數中使用的編碼相同。

c. raw

        RAW請求可以包含任何內容,Pstman只會替換其中的環境變量而不會改變其中的編輯內容。

d. binary

        二進制數據可讓我們發送Postman中無法輸入的內容,例如圖像,音頻或視頻文件。

3.2 Script部分

        在Postman中,Script部分被放在最前面和最后執行,可以完成預處理和斷言的功能,順序如下:

Pre-request Script → Request → Response→ Tests

 3.2.1 Pre-request Script

        前置請求腳本中的代碼段會在Request發送前執行,一般會在需要設置Request內容包含動態/隨機值時使用。Postmna中給出了幾種常用模板,可以根據實際情況改寫模板內容,如下圖中的代碼段會在Request發送前向環境變量中新增一個名為random_number的參數,它的值是0~1之間的隨機數:

pm.environment.set('random_number', Math.random());

 

 3.2.2 Tests

        相較於Pre-request Script,Tests的應用場景更常見,建議每個用例中都在Tests至少添加一條函數作為斷言。像之前介紹的,Tests中的代碼段會在收到Response后執行,並根據Response的內容與之前的預期值作比較。Postman在Tests中給出的常用模板更多,下面舉例幾種常見的用法:

a. 判斷返回碼

        用如下函數判斷返回的狀態碼是否正常,一般成功消息的返回碼是200

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

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

});

b. 判斷Response消息體中是否包含預期字符串

         用如下函數判斷Response Body中是否含有字符串"object already exists"

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

    pm.expect(pm.response.text()).to.include("object already exists");

});

c. 添加環境變量

        先定義變量獲取body中返回的所有參數,再把返回參數中的token設置為環境變量Authorization。

var jsonData =JSON.parse(responseBody);

postman.setEnvironmentVariable("Authorization",jsonData.data.token);

 

注意:JS代碼段中不能直接引用環境變量,需要時可以先定義變量並用pm.environment.get()方法獲取環境變量,然后引用該變量。

        斷言結果會在Response部分展示出來:

3.3 環境變量

        在編輯Request和Script各部分時,我們常常會發現某些固定值需要使用許多次,一旦這些值需要發生變化時可能需要修改每一個用例。最常見的是URL中的IP值,幾乎會出現在一個Collection中的每個用例中。我們可以將這樣的值以鍵值對的形式在環境變量中定義,並在需要使用時直接引用環境變量的key值。這樣,后續發生變化時,我們只需要直接修改環境變量中的值即可。

添加環境變量:

        引用環境變量只需要用{{變量名}}替換原來的值就可以了,當鼠標移動到變量上方時會顯示當前的變量值。

        與代碼中的變量相同,Postman中的環境變量也有作用域的概念。一般建議為一組Collection設置一組環境作用域變量,如果有需要的話可以在查看環境變量界面編輯全局變量,全局變量默認對所有用例都生效。

切換環境變量:

查看環境變量:

3.4 Response部分

        API響應由正文,響應頭和狀態碼組成。Postman將響應體和響應頭放在不同的標簽中顯示;API調用所需時間、API響應狀態碼顯示在選項卡旁邊。如下圖所示:

3.5 執行用例

       編輯好每個用例后,可以統一執行一個Collection中的用例:

        在彈出的窗口左側可以選擇執行的環境變量、設置每條用例前的延時時間等操作,右側是之前的測試結果。

        完成測試后會生成測試報告,包括每個用例中每個斷言是否執行成功:

3.6 導出用例

        當需要將用例共享給其他人時,可以將Collection和環境變量導出,其他人導入后就可以正常使用。

導出Collection:

導出環境變量:

附:

https://www.getpostman.com/docs/v6/postman 官方文檔


免責聲明!

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



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