Postman使用


Postman的使用介紹

​ Postman 是一種非常流行的接口調試工具,可以發送幾乎所有類型的HTTP請求。

​ 在前后端分離的開發寫作方式下,可以快速的測試接口的功能,驗證接口返回數據。

​ Postman適用於不同的操作系統,Postman Mac、Windows X32、Windows X64、Linux系統,還支持postman 瀏覽器擴展程序、postman chrome應用程序等。

一、Postman環境准備

1.Postman下載

​ 官網下載地址:https://www.postman.com/downloads/

​ 官方學習文檔:https://learning.postman.com/docs/

2.Postman賬號

  1. 賬號部分我們可以點擊跳過,直接進入應用

  1. 左側欄菜單

二、發送HTTP請求

1.創建一個請求

1.1 入口
  1. 從集合中右鍵添加請求
  2. 從“+”號按鈕,添加請求
  3. new -> HTTP Request,添加請求
  4. overview頁面
1.2 請求頁面的區域划分

1.3 發送第一個請求
[GET] www.baidu.com

選擇 GET 請求,url 輸入“www.baidu.com”,點擊 Send

1.4 發生了什么

image

注:postman樣本集合並參考此示例API的文檔

1.5 HTTP 請求方法

2.GET請求

GET 請求指定的頁面信息,並返回實體主體。

2.1 接口參數

Query String Parameters

當發起一次GET請求時,參數會以url string的形式進行傳遞。即?后的字符串則為其請求參數,並以&作為分隔符。

[GET] https://postman-echo.com/get?id=1

這段url 意思是:
​ GET方式
​ 使用 https協議
​ 請求服務器:postman-echo.com
​ 請求資源路徑:/get
​ 並攜帶參數名“id”,值為 1


2.2 多參數請求
[GET] https://postman-echo.com/get

入參params:
	"username": "xiaomi"
	"password": "123456"

在url后面,多個參數之間以&作為分隔符拼接參數

2.3 響應區域說明

4.POST請求

POST請求方法 - 向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST 請求可能會導致新的資源的建立和/或已有資源的修改。(具體以后端實現為准,現在有很多查詢數據的接口也用post方式請求)

​ body提交的數據,必須包含在消息主體中entity-body中。

4.1 Postman中content-type類型

​ Content-Type(內容類型),一般是指網頁中存在的 Content-Type,用於定義網絡文件的類型和網頁的編碼,決定瀏覽器將以什么形式、什么編碼讀取這個文件

​ 數據發送出去后,需要接收的服務端解析成功,一般服務端會根據content-type字段來獲取參數是怎么編碼的,然后對應去解碼

  • x-www-form-urlencoded

​ "content-type": "application/x-www-form-urlencoded"

​ application/x-www-form-urlencoded :

form表單中默認的編碼方式,form表單數據被編碼為key/value格式發送到服務器(表單默認的提交數據的格式)

  • form-date

​ "content-type": "multipart/form-data"

​ multipart/form-data : 需要在表單中進行文件上傳時,就需要使用該格式。因為有鍵可以上傳多個文件。

  • raw:原生,也就是原始的意思,可以上傳text、json、xml、html等,會在header中設置content-type類型隨請求一起發送到服務器上

    常用:"Content-Type": "application/json",

  • binary

    ​ Content-Type:application/octet-stream,二進制流數據,通常用來上傳文件,由於沒有鍵值,所以,一次只能上傳一個文件。如:圖像、音頻、視頻等

示例接口:

[POST] https://postman-echo.com/post

"username": "xiaomi"
"password": "123456"

5.PUT&DELETE請求

5.1 PUT請求
https://postman-echo.com/put

PUT請求方法類似於POST。它也意味着將數據傳輸到服務器(並引發響應)。返回什么數據取決於服務器的實現。

一個PUT請求可以傳遞參數使用“Query String Parameters”的,以及請求body。例如,在以下原始 HTTP 請求中
image

5.2 DELETE請求

DELETE方法用於刪除服務器上的資源。DELETE請求的確切用途取決於服務器實現。
DELETE請求同時支持“Query String Parameters”參數和請求body 傳參給服務器。

https://postman-echo.com/delete

6.使用Cookie

​ http無狀態:無狀態協議是指http協議本身對於事務處理沒有記憶功能,服務器不知道瀏覽器的狀態。通俗的即使你登錄了,去訪問同一個網站的不同網頁,服務器都不會知道你是誰,如果需要記錄登錄用戶的信息,用戶操作,用戶行為等數據需要使用cookie或session來存儲。

​ Cookies有服務器生成,存儲在響應頭中,返回給客戶端。客戶端會將cookies保存下來。在客戶端發送請求的時候user-agent會自動獲取本地存儲的cookies,將cookies信息存儲在請求頭中一起發送給服務器。

[GET] www.baidu.com

未登錄狀態下,返回顯示

登錄成功 -> F12打開調試工具,切換到Network -> 觸發請求 -> 查看接口請求頭cookies

【練習】

CSDN登錄后

​ 使用接口利用cookies,修改CSDN的 “消息” - “消息設置” - “點贊”, 開關設置的狀態

https://msg.csdn.net/v1/web/message/notifySetting/set

​ {"msgType":15,"settingResult":true}

​ Cookies失效

三、Postman中的變量

⭐思考:

​ 在項目開發的不同階段可能存在不同環境,比如 測試環境,預發布環境,生產環境

https://test.postman-echo.com/post  - 測試環境
https://uat.postman-echo.com/post - 預發布環境
https://postman-echo.com/post - 生產環境

如果我們對項目進行測試,在切換部署環境的時候,我們是不是得把所有的請求的url地址都改一遍?有沒有一種高效的辦法?

1.變量的類型

  • Global -全局變量

    允許您訪問集合、請求、測試腳本和環境之間的數據。全局變量在整個工作區都可用。

  • Collection - 集合變量

    在集合中的整個請求中都可用,並且與環境無關,因此不要根據所選環境進行更改。

  • Environment - 環境變量

    允許您針對不同環境定制處理,例如本地開發與測試或生產。一次只能激活一個環境。

  • Data - 數據變量

    來自外部 CSV 和 JSON 文件,用於定義在通過 Collection Runner 運行集合時可以使用的數據集。

  • Local - 本地變量

    是臨時的,只能在您的請求腳本中訪問。局部變量值僅限於單個請求或集合運行,並且在運行完成后不再可用。

如果在兩個不同的作用域中聲明了同名變量,則將使用作用域最窄的變量中存儲的值

3.全局變量和環境變量的定義

在Postman界面右上角,點擊"眼睛"圖標,即可開始設置環境變量和全局變量。

我們准備兩個環境變量。test-測試環境、release-生產環境

4.變量的引用

可以使用雙花括號在整個 Postman 用戶界面中引用變量。{{variable_key}}

5.集合變量&本地變量

5.1 集合變量的定義

5.2 局部變量的定義

​ pre-request Script 前置腳本中設置

pm.globals - 全局變量(全局生效)

pm.environment - 環境變量(僅在同一個環境中生效)

pm.collectionVariables - 集合變量(僅在同一個集合中生效)

pm.variables - 本地變量(本地變量值僅限於單個請求或集合運行)

設置變量(以全局變量舉例)

pm.globals.set("variable_key", "variable_value") - 設置一個全局變量

pm.globals.unset("variable_key") - 移除一個全局變量

pm.globals.get("variable_key") - 獲取一個全局變量的值

【練習不同變量的定義和引用】

四、接口設置斷言

​ 一般來說執行完測試,我們需要對結果進行一個校驗,判斷結果是否符合我們的預期,也就是斷言。一般會根據返回的數據進行斷言。

https://postman-echo.com/postname:zhangsan

對接口返回的響應體中的信息返回進行斷言

form.name

  1. 切換到Tests 菜單tab頁

    重點:設置json返回斷言

    pm.test("斷言名稱,自由取名", function () {  var jsonData = pm.response.json();  pm.expect(jsonData.form.name).to.eql("zhangsan");});
    
  2. 斷言結果顯示:

【練習斷言】

​ 修改CSDN消息開關狀態后,斷言修改成功

五、接口參數依賴

業務場景中,多個接口之間的調用會存在下個接口的入參是上個接口的返回這種情況。所以在設計場景化的自動化接口測試用例的時候,我們必須解決接口之間的參數依賴問題

場景:api1的接口返回數據,作為 api2接口的入參信息

[POST] https://postman-echo.com/postname:zhangsan

切換到Tests 菜單Tab頁

  1. 獲取上個接口的返回值

    // 定義一個my_name變量,接受接口返回數據中的某個數據var my_name = pm.response.json().form.name;// 打印該變量的信息my_nameconsole.log("獲取json返回的變量值name:"+my_name);
    
  2. 設置為局部變量

    // 把my_name變量設置為局部變量,取名為pre_namepm.variables.set("pre_name",my_name);// 打印局部變量中的值:pre_nameconsole.log("獲取局部中的變量pre_name值:"+pm.variables.get("pre_name"));
    
  3. 從下個接口中引用該局部變量

六、運行Collection集合

Collection Runner 允許您導入 CSV 或 JSON 文件,並在請求和腳本中使用數據文件中的值。您不能在 Postman 中設置數據變量,因為它是從數據文件中提取的,但是您可以在腳本中訪問數據變量,例如使用pm.iterationData.get("variable_name").

6.1 數據准備

  1. 桌面新建文本文件
  2. 修改文件后綴名.txt 為.csv
  3. 使用excel軟件打開文件
  4. 文件的第一行為變量名稱定義的地方,從第二行開始為變量的值
  5. 另存為后綴為.csv文件(UTF-8)

例:

6.2 接口引入數據變量

在接口入參使用雙花括號引用數據變量(csv第一行定義的變量名)

6.3 創建Runner執行Collection測試計划

  1. 點擊面板下方的Runner -> 鼠標選擇某個集合后拉入面板

  1. 面板設置解釋

  2. 檢查文件參數預覽

  3. 點擊運行,運行成功后,可以從控制台查看運行記錄

【綜合練習】

企業微信的會議室操作[增刪改查]

​ 企業ID:wwd700c6aac2e73750

​ 證書:mMDT-zMjHlLR-V8_VaqwmHD9HsJ5e80X2bTy9QNyOw0


免責聲明!

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



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