Postman 快速指南



Postman - 簡介

Postman 是一款應用程式程式設計介面 (API) 測試工具。API 充當兩個應用程式之間的介面,並在它們之間建立連線。

因此,API 是應用程式可以提供給其使用者的一組協議、函式和工具,以便與另一個應用程式成功通訊。每當我們訪問應用程式(例如透過手機檢視新聞、Facebook 等)時,都需要 API。

Postman 由軟體開發人員和企業家 Abhinav Asthana 於 2012 年設計,旨在簡化 API 開發和測試。它是一個用於測試 API 軟體的工具。它可用於設計、記錄、驗證、建立和更改 API。

Postman 具有傳送和觀察超文字傳輸協議 (HTTP) 請求和響應的功能。它具有圖形使用者介面 (GUI),可以在 Linux、Windows 和 Mac 等平臺上使用。它可以構建多個 HTTP 請求 - POST、PUT、GET、PATCH 並將其轉換為程式碼。

Postman 的需求

Postman 擁有龐大的使用者群,並且由於以下列出的原因已成為一個非常流行的工具:

  • Postman 無需任何許可費用,適用於任何規模的團隊使用。

  • Postman 使用非常簡單,只需下載即可。

  • 在裝置上安裝後,可以透過登入您自己的帳戶非常輕鬆地訪問 Postman。

  • Postman 藉助集合可以輕鬆維護測試套件。使用者可以建立 API 呼叫的集合,其中可以包含各種請求和子資料夾。

  • Postman 能夠構建多種 API 呼叫,例如 SOAP、REST 和 HTTP。

  • Postman 透過向 HTTP 響應程式碼和其他引數新增檢查點,可以用於測試開發。

  • Postman 可以與持續整合和持續交付或持續部署 (CI/CD) 管道整合。

  • Postman 可以與 Newman 或集合執行器整合,允許以多次迭代執行測試。因此,我們可以避免重複測試。

  • Postman 擁有強大的社群支援。

  • Postman 控制檯允許除錯測試步驟。

  • 使用 Postman,我們可以建立多個環境。因此,單個集合可以與各種配置一起使用。

  • Postman 提供匯入/匯出環境和集合的選項,從而可以輕鬆共享檔案。

使用 Postman

要開始使用 Postman,我們有如下所示的導航。它主要包括四個部分:

  • 標題
  • 響應
  • 側邊欄
  • 構建器

以下是 Postman 中可用導航的螢幕截圖:

Navigations

標題

Postman 包括新建、匯入、執行器(用於使用集合執行器執行測試)、開啟新建、攔截器、同步選單等。它顯示工作區名稱 - 我的工作區以及邀請選項,以便在團隊之間共享。

Header

新建選單用於建立新的環境、集合或請求。匯入選單有助於匯入環境/集合。

Environment/Collection

我們可以從檔案、資料夾、連結、原始文字或程式碼儲存庫選項匯入,這些選項也可在匯入下找到。

File

在這裡,開啟新建用於開啟一個新的選項卡、Postman 或執行器視窗。

History

響應

響應部分只有在發出請求時才會填充值。它通常包含響應詳細資訊。

Response

側邊欄

側邊欄包含集合(用於維護測試,包含資料夾、子資料夾、請求)、歷史記錄(記錄過去所有 API 請求)和 API。

Sidebar

構建器

構建器是 Postman 應用程式中最重要的部分。它具有請求選項卡並顯示當前請求名稱。如果未為請求提供標題,則預設情況下會顯示“未命名請求”。

Builder

構建器部分還包含請求型別(GET、POST、PUT 等)和 URL。使用傳送按鈕執行請求。如果對請求進行了任何修改,我們可以使用儲存按鈕儲存它。

Button

構建器部分具有引數、授權、標題、主體、前置條件、測試和設定等選項卡。鍵值對中請求的引數在引數選項卡中提及。使用使用者名稱、密碼、令牌等的 API 授權位於授權選項卡中。

請求標題和主體分別在標題和主體選項卡中定義。有時,在請求之前需要執行預條件指令碼。這些在“前置條件”選項卡中提及。

測試選項卡包含在觸發請求時執行的指令碼。這有助於驗證 API 是否正常工作以及獲取的資料和響應程式碼是否正確。

Params tab

Postman - 環境設定

Postman 可以安裝在 Mac、Windows 和 Linux 等作業系統中。它基本上是一個獨立的應用程式,可以透過以下方式安裝:

  • Postman 可以從 Chrome 擴充套件程式安裝(僅在 Chrome 瀏覽器中可用)。

  • 可以將其安裝為獨立應用程式。

獨立應用程式

要在 Windows 中將 Postman 作為獨立應用程式下載,請導航到以下連結 https://www.postman.com/downloads/

然後,單擊“下載應用程式”按鈕。根據作業系統的配置,選擇“Windows 32 位”或“Windows 64 位”選項。

Postman App

將開啟儲存可執行檔案的彈出視窗。點選“儲存檔案”。

Executable File

下載成功完成後,將生成可執行檔案。

Executable File1

雙擊它進行安裝。

Installation

安裝後,將開啟 Postman 登入螢幕。此外,我們還必須在此處註冊。有兩種建立 Postman 帳戶的選項,如下所示:

  • 點選建立免費帳戶。
  • 使用 Google 帳戶。
Postman account

繼續執行帳戶建立步驟並輸入相關詳細資訊,例如姓名、角色等。

Account Creation

最後,我們將進入 Postman 的啟動螢幕。您的計算機上將出現以下螢幕:

Start screen

Chrome 擴充套件程式

要將 Postman 作為 Chrome 瀏覽器擴充套件程式下載,請在 Chrome 中啟動以下連結:

https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?

然後,單擊“新增到 Chrome”。

Chrome Extension

將顯示一個彈出視窗,單擊“新增應用程式”按鈕。

Add App button

Chrome 應用頁面將啟動,以及 Postman 圖示。接下來,我們必須單擊 Postman 圖示。

Postman icon1

Postman 的安裝開始。

Space Time

安裝完成後,將開啟 Postman 註冊頁面。我們可以按照前面說明的方式繼續註冊(在將 Postman 安裝為獨立應用程式時),或者透過單擊“直接帶我到應用程式”連結跳過它。

我們以後可以建立帳戶。

Account

註冊是一個重要的步驟,因為它允許從其他機器訪問使用者資料。接下來,將開啟 Postman 歡迎頁面。

Enables Access

關閉彈出視窗並轉到下一頁後,我們會收到一條訊息 -“Chrome 應用即將棄用”。

Chrome apps

始終建議將 Postman 安裝為獨立應用程式,而不是 Chrome 擴充套件程式。

Postman - 環境變數

變數提供在請求、集合、指令碼等中儲存和重複引數的選項。如果我們需要修改值,則只需在一個地方進行修改。因此,變數有助於最大程度地減少錯誤的機會並提高效率。

在 Postman 中,環境由鍵值對組成。它有助於分別識別每個請求。當我們建立環境時,我們可以修改鍵值對,這將從相同的請求生成不同的響應。

環境中鍵值對中的鍵稱為環境變數。可以有多個環境,並且每個環境也可以有多個變數。但是,我們一次只能使用一個環境。

簡而言之,環境允許在不同的資料集上執行請求和集合。我們可以為生產、測試和開發建立環境。這些環境中的每一個都將具有不同的引數,例如 URL、密碼等。

建立環境

請按照以下步驟在 Postman 中建立環境:

**步驟 1** - 導航到“新建”選單,然後單擊“環境”。

New menu

**步驟 2** - 將開啟“管理環境”彈出視窗。我們必須輸入環境名稱。然後,新增變數名稱和值。

在這裡,我們添加了變數 **u**,其值為 https://jsonplaceholder.typicode.com/users。關閉彈出視窗。

MANAGE ENVIRONMENTS

**步驟 3** - 新的環境 (ENV1) 將作為“無環境”下拉列表中的專案之一顯示。

Dropdown

**步驟 4** - 選擇 **ENV1 環境**並在位址列中輸入 **{{u}}**。要在請求中使用環境變數,我們必須將其用雙大括號括起來 **({{<環境變數名稱>}})**。

**步驟 5** - 然後,單擊“傳送”。此變數可以代替實際 URL 使用。我們已收到響應程式碼 **200 0K**(表示請求成功)。

URL

環境變數範圍

環境變數的範圍在其建立的環境內。這意味著它具有限制在該環境中的區域性範圍。如果我們選擇另一個環境並嘗試訪問相同的環境變數,我們將收到錯誤。

在本章中,我們在 **ENV1 環境**中建立了一個環境變數 **u**,並在傳送 GET 請求時,我們得到了所需的響應。

但是,如果我們嘗試從另一個環境(例如 Environment_Test)使用相同的環境變數 u,我們將收到錯誤。

以下螢幕顯示瞭如果我們從另一個環境使用相同的環境變數 u 可能會出現的錯誤:

Variables Scope

Postman - 授權

在 Postman 中,授權用於驗證使用者訪問伺服器中資源的資格。專案中可能有多個 API,但其訪問許可權可以僅限於某些授權使用者。

授權過程適用於需要保護的 API。此授權用於識別和驗證使用者是否有權訪問伺服器資源。

這在 Postman 的“授權”選項卡中完成,如下所示:

Authorization tab

在“型別”下拉列表中,有多種授權選項,如下所示:

Authorization options

現在讓我們使用來自 GitHub 開發人員的 API 建立一個 POST 請求,其端點為 **https://www.api.github.com/user/repos**。在 Postman 中,單擊“主體”選項卡並選擇“原始”選項,然後選擇 JSON 格式。

新增以下請求主體:

{
	"name" : "Tutorialspoint"
}

然後,點選傳送

Authorization options1

獲得的響應程式碼為401 未授權。這意味著,我們需要傳遞授權才能使用此資源。要進行授權,請在“授權”選項卡內的“型別”下拉列表中選擇任何選項。

授權型別

讓我們討論一些重要的授權型別,即 Bearer Token 和 Basic Authentication。

Bearer Token

對於 Bearer Token 授權,我們必須從“型別”下拉列表中選擇“Bearer Token”選項。之後,將顯示“Token”欄位,需要提供該欄位才能完成授權。

步驟 1 - 要獲取 GitHub API 的 Token,首先登入到 GitHub 帳戶,點選此處提供的連結 - https://github.com/login

步驟 2 - 登入後,點選螢幕右上角並選擇設定選項。

Settings

現在,選擇開發者設定選項。

Developer Settings

接下來,點選個人訪問令牌

Access Tokens

現在,點選生成新令牌按鈕。

New  Tokens

提供一個備註並選擇 repo 選項。然後,點選頁面底部的生成令牌

最後,將生成一個令牌。

Generate Token

複製該令牌並將其貼上到 Postman 中“授權”選項卡下的“Token”欄位中。然後,點選傳送

請注意 - 此處,令牌對於特定的 GitHub 帳戶是唯一的,不應共享。

響應

響應程式碼為201 已建立,這意味著請求已成功。

Code

Basic Authentication

對於 Basic Authentication 授權,我們必須從型別下拉列表中選擇Basic Auth選項,以便顯示“使用者名稱”和“密碼”欄位。

首先,我們將向一個端點發送 GET 請求(https://postman-echo.com/basic-auth),並在“型別”下拉列表中選擇未選擇任何授權選項。

請注意 - 上述端點的使用者名稱為 postman,密碼為 password。

Authentication

獲得的響應程式碼為401 未授權。這意味著此 API 的授權未透過。

現在,讓我們選擇Basic Auth作為授權型別,之後將顯示“使用者名稱”和“密碼”欄位。

在“使用者名稱”欄位中輸入 postman,在“密碼”欄位中輸入 password。然後,點選傳送

Username and password

現在獲得的響應程式碼為 200 OK,這意味著我們的請求已成功傳送。

No Auth

我們也可以使用請求頭執行 Basic Authentication。首先,我們必須從“授權”選項卡中選擇No Auth選項。然後在“Headers”選項卡中,我們必須新增一個鍵 - 值對

我們將鍵設定為 Authorization,值為使用者名稱的使用者名稱和密碼,格式為basic < 編碼憑據 >

我們示例中使用的端點為 - https://postman-echo.com/basic-auth。要對使用者名稱和密碼進行編碼,我們將藉助具有以下 URL 的第三方應用程式 - https://www.base64encode.org

請注意 - 我們此處端點的使用者名稱為 postman,密碼為 password。在編輯框中輸入 postman-password 並點選 Encode。編碼後的值將在底部填充。

Encoded Value

我們將接收到的編碼後的使用者名稱和密碼 cG9zdG1hbjpwYXNzd29yZA== 新增到 Header 中,格式為 -basic cG9zdG1hbjpwYXNzd29yZA ==。然後,點選傳送

Authorization

從“型別”下拉列表中選擇No Auth

Authorization1

獲得的響應程式碼為200 OK,這意味著我們的請求已成功傳送。

集合中的授權

要為集合新增授權,請按照以下步驟操作 -

步驟 1 - 點選 Postman 中集合名稱旁邊的三個點,然後選擇編輯選項。

Collections

步驟 2 - 將彈出“編輯集合”視窗。移動到“授權”選項卡,然後從“型別”下拉列表中選擇任何選項。點選更新

Collections1

Postman - 工作流

在 Postman 集合中,請求按其出現的順序執行。每個請求首先按資料夾的順序執行,然後是集合根目錄中的任何請求。

讓我們建立一個包含四個請求的集合(Collection1)。有關如何建立集合的詳細資訊在“建立集合”章節中有詳細介紹。

步驟 1 - 點選側邊欄中集合名稱右側出現的箭頭。然後,點選執行按鈕以觸發集合中請求的執行。

Run button

步驟 2 - 將彈出“集合執行器”視窗。“執行順序”部分顯示請求從上到下執行的順序。(GET->POST->DEL->PUT)。點選執行 Collection1按鈕。

Run Collection

步驟 3 - 執行結果顯示 GET 請求首先執行,然後是 POST,然後是 DEL,最後是 PUT,如步驟 2 中的“執行順序”部分所述。

Run Order

如果我們想更改要執行的請求的順序(例如,首先執行 Get 請求,然後是建立使用者,然後是更新請求,最後是刪除請求)。我們必須藉助postman.setNextRequest()函式。

此函式具有宣告哪個請求接下來執行的功能。要執行的下一個請求名稱作為引數傳遞給此函式。根據工作流程,我們必須在 Postman 中端點位址列下的“測試”或“預請求指令碼”選項卡中新增此函式。

在 Postman 中執行請求的語法如下所示 -

postman.setNextRequest("name of request")

工作流的實現

Postman 中工作流的實現將在下面分步驟說明 -

步驟 1 - 在“測試”選項卡下,為“建立使用者”請求新增以下指令碼。

postman.setNextRequest("Update Request")

將出現以下螢幕 -

Workflow

步驟 2 - 在“測試”選項卡下,為“更新請求”請求新增以下指令碼。

postman.setNextRequest("Delete Request")

將出現以下螢幕 -

Workflow1

工作流的輸出

以下是工作流的輸出 -

Workflow2

輸出顯示“更新請求”和“刪除請求”處於無限迴圈中,直到我們透過點選“停止執行”按鈕停止它。

無限工作流迴圈

如果我們想透過指令碼停止無限工作流迴圈,我們必須為“刪除請求”請求新增以下指令碼。

postman.setNextRequest(null)

將出現以下螢幕 -

Loop

再次執行相同的集合,輸出將如下所示 -

Loop1

輸出顯示執行順序為 Get 請求、建立使用者、更新請求,最後是刪除請求。

Postman - GET 請求

GET 請求用於從伺服器獲取詳細資訊,並且對伺服器沒有任何影響。GET 請求不會更新任何伺服器資料,而是在其觸發時。伺服器僅將其響應傳送到請求。

建立 GET 請求

按照以下步驟在 Postman 中成功建立 GET 請求 -

步驟 1 - 點選 Postman 應用程式中的“新建”選單。將彈出“新建”視窗。然後點選“請求”連結。

GET Request

步驟 2 - 將彈出“儲存請求”視窗。輸入請求名稱,然後點選“儲存”。

save Request

步驟 3 - “請求名稱(Test1)”將反映在“請求”選項卡上。然後,我們將從 HTTP 請求下拉列表中選擇GET選項。

GET Request

步驟 4 - 在位址列中輸入 URL - https://tutorialspoint.tw/index.htm 並點選“傳送”。

響應

傳送請求後,我們可以看到響應中填充了響應程式碼200 OK。這表示請求成功且端點正確。此外,還填充了完成請求所需的時間(223 毫秒)和有效負載大小(20.75 KB)的資訊。

Response1

將滑鼠懸停在響應時間上,我們可以看到 DNS 查詢、SSL 握手等不同事件所花費的時間。

Events

將滑鼠懸停在有效負載大小上,將顯示有關響應、標頭、正文等大小的詳細資訊。

On Hovering

響應正文包含子選項卡 - “美化”、“原始”和“預覽”。“美化”格式顯示關鍵字的顏色格式和縮排,便於閱讀。“原始”格式顯示與“美化”選項卡中顯示的相同資料,但不帶任何顏色或縮排。

“預覽”選項卡顯示頁面的預覽。

Pretty format

原始選項卡

將出現以下螢幕 -

Raw tab

預覽選項卡

將出現以下螢幕 -

Preview tab

響應還包含 Cookie、標頭和測試結果。

Cookies

Postman - POST 請求

Postman POST 請求允許將資料追加到端點。這是一種用於在伺服器的請求正文中新增資訊的方法。它通常用於傳遞敏感資訊。

一旦我們透過 POST 方法傳送了一些請求正文,API 就會反過來在響應中向我們提供某些資訊。因此,POST 請求總是伴隨著正確格式的正文。

建立 POST 請求

按照以下步驟在 Postman 中成功建立 POST 請求 -

步驟 1 - 點選 Postman 應用程式中的新建選單。將彈出新建視窗。然後,點選“請求”連結。

POST Request

步驟 2 - 將彈出儲存請求視窗。輸入請求名稱,然後點選儲存

SAVE REQUEST

步驟 3 - “請求名稱(Test1)”將反映在“請求”選項卡上。此外,我們還將從 HTTP 請求下拉列表中選擇POST選項。

然後,在位址列中輸入 URL https://jsonplaceholder.typicode.com/users

POST Request

步驟 4 - 移動到位址列下方的“正文”選項卡,然後選擇原始選項。

Body tab

步驟 5 - 然後,從“文字”下拉列表中選擇JSON

Json

步驟 6 - 將以下資訊複製並貼上到 Postman 的“正文”選項卡中。

{
	"id": 11,
	"name": "Tutorialspoint",
	"username": "Test1",
	"email": "abc@gmail.com",
	"address": {
		"street": "qa street",
		"suite": "Apt 123",
		"city": "Kochi",
		"zipcode": "49085",
		"geo": {
			"lat": "-3.3155",
			"lng": "94.156"
		}
	},
	"phone": "99599125",
	"website": "Tutorialspoint.com",
	"company": {
		"name": "Tutorialspoint",
		"catchPhrase": "Simple Easy Learning",
		"bs": "Postman Tutorial"
	}
}

透過 POST 方法傳送的上述資料僅適用於端點:https://jsonplaceholder.typicode.com/users

要以正確的 JSON 格式傳遞資料,我們可以使用以下連結中提供的 Jsonformatter -

https://jsonformatter.curiousconcept.com/

json Format

步驟 7 - 點選“傳送”按鈕。

Send button

響應

傳送請求後,我們可以看到響應中填充了響應程式碼 201 已建立。這表示請求成功,並且我們傳送的請求已被伺服器接受。

此外,還填充了完成請求所需的時間(347 毫秒)和有效負載大小(1.61 KB)的資訊。

Response

我們可以看到響應正文與我們傳送到伺服器的請求正文相同。

Request Body

Postman - PUT 請求

Postman PUT 請求用於將資料傳遞到伺服器以建立或修改資源。POST 和 PUT 之間的區別在於 POST 請求不是冪等的。

這意味著多次呼叫相同的 PUT 請求將始終產生相同的輸出。但是多次呼叫相同的 POST 請求將建立多個類似的資源。

在建立 PUT 請求之前,我們首先將向伺服器上的端點發送 GET 請求 - http://dummy.restapiexample.com/api/v1/employees。有關如何建立 GET 請求的詳細資訊在“Postman GET 請求”章節中有詳細介紹。

應用 GET 方法後,獲得的響應正文如下所示 -

PUT request

現在,讓我們使用 PUT 請求更新 id 為 21 的記錄的employee_salaryemployee_age

建立 PUT 請求

按照以下步驟在 Postman 中成功建立 PUT 請求 -

步驟 1 - 點選 Postman 應用程式中的新建選單。將彈出新建視窗。然後,點選“請求”連結。

PUT Request

步驟 2 - 將彈出儲存請求視窗。輸入請求名稱,然後點選儲存

Save Request2

步驟 3 - “請求名稱(Test1)”將反映在“請求”選項卡上。我們將從 HTTP 請求下拉列表中選擇 PUT 選項。

然後在位址列中輸入 URL - http://dummy.restapiexample.com/api/v1/update/21(更新 id 為 21 的記錄的端點)。

必須注意,在 PUT 請求中,我們必須在 URL 中提及要更新的伺服器中資源的 id。

例如,在上一個 URL 中,我們添加了 ID 21。

PUT request2

步驟 4 − 移動到位址列下方的主體選項卡,然後選擇原始選項。

Body Tab1

步驟 5 − 然後,從文字下拉選單中選擇 JSON。

Text dropdown

步驟 6 - 將以下資訊複製並貼上到 Postman 的“正文”選項卡中。

{ "name": "Jenette Caldwell","salary": "2000","age": "15"}

PUT 請求需要設定的總體引數如下所示:

parameters

步驟 7 − 點選傳送按鈕。

響應

傳送請求後,我們可以在響應主體中看到填充的響應程式碼 200 OK。這表示請求成功,我們傳送的請求已被伺服器接受。

此外,還會填充完成請求所需的時間 (673 毫秒) 和有效負載大小 (705 B) 的資訊。響應主體顯示,ID 為 21 的員工的工資和年齡分別更新為 2000 和 15。

Response3

Postman - DELETE 請求

Postman DELETE 請求刪除伺服器中已存在的資源。DELETE 方法向伺服器傳送請求,以刪除端點中提到的請求。因此,它能夠更新伺服器上的資料。

在建立 DELETE 請求之前,我們首先需要向伺服器上的端點發送 GET 請求:http://dummy.restapiexample.com/api/v1/employees。有關如何建立 GET 請求的詳細資訊在 GET 請求章節中有詳細說明。

應用 GET 方法後,將獲得以下響應主體:

DELETE request

讓我們從伺服器中刪除 ID 為 2 的記錄。

建立 DELETE 請求

按照以下步驟在 Postman 中成功建立 DELETE 請求:

步驟 1 - 點選 Postman 應用程式中的新建選單。將彈出新建視窗。然後,點選“請求”連結。

DELETE request1

步驟 2 − 將彈出儲存請求視窗。輸入請求名稱,然後點選儲存

Save request3

步驟 3 − 請求名稱 (Test1) 將反映在請求選項卡上。我們將從 HTTP 請求下拉選單中選擇DELETE選項。

然後在位址列中輸入 URL - http://dummy.restapiexample.com/api/v1/delete/2(刪除 ID 為 2 的記錄的端點)。

在這裡,在 DELETE 請求中,我們在 URL 中提到了我們要在伺服器中刪除的資源的 ID。

Delete request2

步驟 4 − 點擊發送按鈕。

響應

傳送請求後,我們可以在響應中看到填充的響應程式碼200 OK。這表示請求成功,我們傳送的請求已被伺服器接受。

此外,還會填充完成請求所需的時間 (734 毫秒) 和有效負載大小 (652 B) 的資訊。響應顯示狀態為成功。記錄 ID 2 已從伺服器中刪除。

Response

刪除 ID 為 2 的記錄後,如果我們對端點執行 GET 請求:http://dummy.restapiexample.com/api/v1/employee/2,我們將收到 401 未授權狀態程式碼。

Postman - 為 CRUD 建立測試

CRUD 代表在瀏覽器中開啟的任何網站上的建立、檢索、更新和刪除操作。每當我們啟動應用程式時,都會執行檢索操作。

在建立資料時,例如,為網站新增新使用者,則執行建立操作。如果我們正在修改資訊,例如,更改網站中現有客戶的詳細資訊,則執行更新操作。

最後,要消除任何資訊,例如,刪除網站中的使用者,則執行刪除操作。

要從伺服器檢索資源,使用 HTTP 方法 – GET(在章節 – Postman GET 請求中詳細討論)。要建立伺服器中的資源,使用 HTTP 方法 – POST(在章節 – Postman POST 請求中詳細討論)。

要修改伺服器中的資源,使用 HTTP 方法 – PUT(在章節 – Postman PUT 請求中詳細討論)。要刪除伺服器中的資源,使用 HTTP 方法 – DELETE(在章節 – Postman DELETE 請求中詳細討論)。

Postman 中的測試

只有在請求成功時才會執行 Postman 測試。如果未生成響應主體,則表示我們的請求不正確,我們將無法執行任何測試來驗證響應。

在 Postman 中,測試是用 JavaScript 開發的,可以使用 JavaScript 和函式方法進行開發。這兩種技術都基於 JavaScript 語言。

JavaScript 方法

按照以下步驟在 Javascript 中開發測試:

步驟 1 − 使用 JavaScript 方法開發的測試位於位址列下的測試選項卡中。

Tests

步驟 2 − 在測試選項卡中新增以下 JavaScript 驗證:

tests["Status Code should be 200"] = responseCode.code === 200
tests["Response time lesser than 10ms"] = responseTime<10

我們可以為特定請求新增一個或多個測試。

這裡,tests 是一個數組型別的變數,可以儲存整數、字串、布林值等資料型別。狀態程式碼應為 200,響應時間小於 10 毫秒是測試的名稱。建議為測試提供有意義的名稱。

responseCode.code是響應中獲得的響應程式碼,responseTime是獲取響應所需的時間。

步驟 3 − 選擇 GET 方法並輸入端點,然後點選傳送

響應

在響應中,點選測試結果選項卡:

Test Results

測試結果選項卡以綠色顯示已透過的測試,以紅色顯示失敗的測試。測試結果 (1/2) 表示兩個測試中有一個已透過。

響應顯示狀態為 200 OK,響應時間為 129 毫秒(第二個測試檢查響應時間是否小於 10 毫秒)。

因此,第一個測試透過,第二個測試失敗,並出現斷言錯誤。

函式方法

按照以下步驟使用函式方法開發測試:

步驟 1 − 使用函式方法開發的測試位於位址列下的測試選項卡中。

步驟 2 − 在測試選項卡中新增以下程式碼:

pm.test["Status Code is 401"], function(){
	pm.response.to.have.status(401)
})

這裡,pm.test是正在執行的測試的函式。狀態程式碼為401,它是測試的名稱,在執行後將在測試結果中顯示。

pm.response用於獲取響應並在其上新增斷言以驗證標頭、程式碼、狀態等。

步驟 3 − 選擇 GET 方法並輸入端點,然後點擊發送。

響應

在響應中,點選測試結果選項卡:

Tests results1

測試結果選項卡以紅色顯示測試,因為測試已失敗。測試結果 (0/1) 表示一個測試中零個測試已透過。響應顯示狀態為 200 OK(測試檢查響應程式碼是否為 401)。

因此,測試顯示失敗,並出現斷言錯誤。

Postman - 建立集合

已儲存並組織到資料夾中的一組請求稱為集合。它類似於儲存庫。因此,集合有助於維護 API 測試,並輕鬆地與團隊共享它們。

建立新的集合

按照以下步驟在 Postman 中建立新的集合:

步驟 1 − 點選 Postman 應用程式中的新建圖示。將彈出建立新視窗。然後點選集合連結。

New Collection

步驟 2 − 將彈出建立新集合視窗。輸入集合名稱,然後點選建立按鈕。

New Collection1

步驟 3 − 集合名稱及其包含的請求數將顯示在側邊欄的集合選項卡下。

New Collection2

步驟 4 − 在集合名稱右側,我們有共享、執行等可用選項。點選三個點以獲取更多選項進行選擇。

New Collection3

步驟 5 − 點選新增請求。將彈出儲存請求視窗。輸入請求名稱,然後選擇我們建立的集合。然後,點選儲存到 Collection1 按鈕。

Add Request

步驟 6 − 集合及其請求將顯示在側邊欄的集合選項卡下。

New Collection4

Postman - 引數化請求

我們可以引數化 Postman 請求以使用各種資料集執行相同的請求。這是藉助變數和引數完成的。引數是 URL 的一部分,用於向伺服器傳遞更多資訊。

資料可以以資料檔案或環境變數的形式使用。引數化是 Postman 的一項重要功能,有助於消除冗餘測試。引數用雙花括號 {{parameter}} 括起來。

示例

讓我們以 URL 為例:https://tutorialspoint.tw/index.htm。我們將建立一個名為 url 的變數,然後將其用於請求的引數化。我們可以在 Postman 中以 {{url}} 的格式引用它。

引數採用鍵值對的形式。因此,要指向 URL:https://tutorialspoint.tw/index.htm,我們可以將其表示為 {{url}}/index.htm。因此,這裡,url 是鍵,設定的值為 https://tutorialspoint.tw

建立引數請求

按照以下步驟在 Postman 中建立引數請求:

步驟 1 − 點選 Postman 應用程式右上角環境下拉選單右側的眼睛圖示

Parameter Request

步驟 2 − 點選全域性部分中的編輯連結。

Parameter Request1

步驟 3 − 將彈出管理環境視窗。在變數欄位中輸入 URL,在初始值欄位中輸入 https://tutorialspoint.tw。然後,點選儲存

URL1

步驟 4 − 點選關閉以轉到下一個螢幕。

步驟 5 − 在 Http 請求選項卡中,在位址列中輸入{{url}}/index.htm。選擇GET 方法,然後點選傳送

Get method

響應

傳送請求後,我們可以在響應中看到填充的響應程式碼 200 OK。這表示請求成功且端點正確。

Get method1

Postman - 集合執行器

Postman 集合執行程式用於一起執行包含多個請求的集合。集合中的所有請求將同時執行。集合執行程式不會生成任何響應主體。

集合執行程式控制臺顯示各個請求的測試結果。集合中必須包含多個請求才能使用集合執行程式。

有關如何建立集合的詳細資訊在建立集合章節中有詳細說明。

使用集合執行程式執行測試

按照以下步驟使用 Postman 中的集合執行程式執行測試:

步驟 1 − 點選 Postman 應用程式頂部的執行程式選單。

Collection Runner

步驟 2 − 將出現集合執行程式螢幕。

Collection Runner1

步驟 3 − 從選擇集合或資料夾中選擇集合名稱。

Collection Runner2

步驟 4 − 從環境下拉選單中選擇一個環境,以便在特定環境中執行請求。然後,指定我們需要迭代請求的次數。我們還可以為請求設定以毫秒為單位的延遲時間。

Environment dropdown

步驟 5 − 如果我們在檔案中存在資料,則必須從資料中選擇檔案型別。然後,點選執行 Collection1 按鈕。

Run Collection1

步驟 6 − 執行結果頁面將顯示。根據提供的延遲時間,測試應該會執行。

每個迭代都將顯示測試結果(透過/失敗)。透過狀態以綠色表示,失敗狀態以紅色表示。如果某個特定請求沒有實現測試,則將顯示訊息 - 此請求沒有任何測試

這是執行測試的環境,並且 Collection 名稱在 Collection Runner 的頂部可見。對於每個請求,還將顯示狀態程式碼、花費時間、有效負載大小和測試驗證。

Collection names

Postman - 斷言

斷言用於驗證測試執行後實際值和預期值是否匹配。如果它們不匹配,則測試將失敗,我們將從測試輸出中獲取失敗原因。

斷言返回一個布林值,即真或假。在 Postman 中,我們可以藉助 JavaScript Chai 斷言庫在我們的測試中新增斷言。它在 Postman 應用程式中自動可用。

Chai 斷言易於理解,因為它們以人類可讀的格式定義。Postman 中的斷言寫在位址列下的測試選項卡中。

Chai 的文件可在以下連結中找到:

https://www.chaijs.com/

Assertion

編寫斷言

讓我們編寫一個斷言來檢查某個特定文字 - Postman 是否在一個字串陣列中

示例

pm.test["Text is present"], function(){
	pm.expect(['Java', 'Postman']).to.include('Postman')
})

輸出

輸出如下:

Assertion1

讓我們編寫一個斷言來檢查陣列是否為空

示例

pm.test["Array contains element"], function(){
	pm.expect(['Java', 'Postman']).to.be.an('array').that.is.not .empty
})

輸出

輸出如下:

Assertion2

物件驗證斷言

讓我們使用 eql 編寫一個物件驗證斷言。它用於比較下面示例中物件 i 和 j 的屬性。

示例

pm.test("Equality", function(){
let i = {
	"subject" : "Postman"
};
let j= {
	"subject" : "Cypress"
};
pm.expect(i).to.not.eql(j);

輸出

輸出如下:

Assertion3

為物件 i 定義的屬性是 Postman,而為 j 定義的屬性是 Cypress。因此,not.eql 斷言通過了。

斷言型別

在 Postman 中,我們可以對響應的不同部分應用斷言。這些將在下面解釋:

狀態程式碼

The assertion for status code is as follows:pm.test["Status Code is 401"], function(){
	pm.response.to.have.status(401)
})

如果獲得的響應狀態程式碼為 401,則上述斷言透過。

pm.test["Status is Forbidden"], function(){
	pm.response.to.have.property('status', ' Forbidden')
})

上述斷言應用於具有值 Forbidden 的響應屬性 - 狀態。

響應花費的時間

響應花費時間的斷言如下:

pm.test("Response time above 500 milliseconds", function () {
	pm.expect(pm.response.responseTime).to.be.above(500)
})

如果響應時間超過 500 毫秒,則上述斷言透過。

響應格式的型別

響應格式型別的斷言如下:

pm.test("Response type is JSON", function(){
	pm.response.to.be.json;
})

如果響應為 JSON 型別,則上述斷言透過。

響應的頭

響應頭的斷言如下:

pm.test("Header Content-Encoding is available", function () {
	pm.response.to.have.header("Content-Encoding")
})

如果響應具有 Content-Encoding 頭,則上述斷言透過。

響應的文字

響應文字的斷言如下:

pm.test("Response Text", function () {
	pm.expect(pm.response.text()).to.include("Tutorialspoint")
})

如果響應文字包含文字 Tutorialspoint,則上述斷言透過。

Postman - 模擬伺服器

模擬伺服器不是真實的伺服器,它是為了模擬並充當真實伺服器以驗證 API 及其響應而建立的。如果需要驗證某些響應但由於實際伺服器上的安全問題而無法在 Web 伺服器上獲得,則通常使用這些響應。

模擬伺服器的目的

建立模擬伺服器的原因如下:

  • 如果要在生產環境中使用的 API 仍在開發中,則會建立模擬伺服器。

  • 如果我們想要避免向即時資料傳送請求,則會使用模擬伺服器。

模擬伺服器的優勢

模擬伺服器的優勢如下:

  • 使用示例模擬真實 API 功能。

  • 模擬伺服器可以附加到 Collection 中。

  • 使用模擬資料驗證 API。

  • 儘早識別錯誤和缺陷。

  • 在 API 釋出以供實際使用之前識別 API 中的依賴項。

  • 工程師可以使用它為概念構建原型並向高層管理人員展示。

  • 在開發應用程式的前端時,開發人員應該對從真實伺服器傳送請求後將獲得的響應功能有所瞭解。此時,模擬伺服器可以提供很大的幫助。

模擬伺服器建立

按照以下步驟在 Postman 中建立模擬伺服器:

步驟 1 − 點選 Postman 應用程式中的新建圖示。然後,點選模擬伺服器

Mock Server

步驟 2 − 從方法下拉選單中選擇GET,將請求路徑輸入為/user/home,響應程式碼輸入為200,並輸入響應主體。然後,點選下一步

Path

步驟 3 − 輸入模擬伺服器名稱,然後點選建立模擬伺服器按鈕。

Mock Server1

步驟 4 − 模擬伺服器將與模擬 URL 一起建立。複製模擬 URL 按鈕用於複製模擬連結。點選關閉按鈕繼續。

Mock URL

步驟 5 − 從無環境下拉選單中選擇模擬伺服器作為環境,然後點擊發送。獲得的響應程式碼為200 OK,這意味著請求成功。

響應主體還顯示訊息 - 這是 Tutorialspoint 的 Postman 教程,與我們在步驟 2 中傳遞的響應主體相同。

Message

步驟 6 − 可以透過點選螢幕右上角的眼睛圖示獲取 URL 的值。

Eye Icon

因此,完整的請求模擬 URL 應為:https://05303abe-b842-4c47-ab8c-db2af9334f57.mock.pstmn.io/user/home(在步驟 5 中的位址列中以 {{url}}/user/home 表示)。我們在 url 值的末尾附加了 /user/home,因為這是我們在步驟 2 中為模擬伺服器設定的請求路徑。

步驟 7 − 我們已經看到響應主體為文字格式。我們也可以以 JSON 格式獲取響應。要實現此目的,請從儲存響應下拉選單中選擇儲存為示例選項。

Text format

步驟 8 − 提供示例名稱,然後從響應主體部分選擇 JSON。

Body section

步驟 9 − 以 JSON 格式新增以下響應主體。然後點選儲存示例。

{
	"name": "Tutorialspoint",
	"subject": "Postman"
}
Body section1

步驟 10 − 最後,向同一個端點發送 GET 請求,我們將收到與我們在示例請求中傳遞的相同的響應主體。

下圖顯示響應為 HTML 格式:

Body section2

下圖顯示響應為 JSON 格式:

JSON format1

示例請求

按照以下步驟透過示例請求建立模擬伺服器:

步驟 1 − 建立一個 Collection 並向其中新增一個請求。

有關如何建立 Collection 的詳細資訊在章節 - Postman 建立 Collection 中進行了詳細討論。

Create Collections

步驟 2 − 新增端點https://postman-echo.com/get?test=123 併發送 GET 請求。

Endpoint

步驟 3 − 從響應主體中,從儲存響應下拉選單中選擇儲存為示例選項。

options

步驟 4 − 給出示例名稱,然後點選儲存示例按鈕。

Buttons

步驟 5 − 點選 Collection 名稱模擬伺服器(我們建立的)並點選模擬選項卡。然後,點選建立模擬伺服器。

Mock tab

步驟 6 − 建立模擬伺服器彈出窗口出現。為模擬伺服器提供一個名稱,然後點選建立模擬伺服器按鈕。

請注意 - 我們可以將模擬伺服器設為私有或公開。要將模擬伺服器設為私有,我們必須選中將此模擬伺服器設為私有複選框。然後,我們需要利用 Postman API 金鑰。

API key

步驟 7 − 將顯示訊息 - 模擬伺服器已建立。此外,我們還將獲得模擬 URL。我們可以使用複製模擬 URL 按鈕複製它。然後,點選關閉

URL button

步驟 8 − 我們建立的模擬伺服器將反映在 Collection 側邊欄的模擬選項卡下。點選它。

Collections sidebar

步驟 9 − 我們將新增一個新的請求並將我們在步驟 7 中複製的 URL 貼上到其中。要傳送 GET 請求,我們將在貼上的 URL 末尾附加值 - /get。

例如,此處生成的模擬 URL 為:https://f270f73a-6fdd-4ae2-aeae-cb0379234c87.mock.pstmn.io

現在要傳送 GET 請求,端點應為:https://f270f73a-6fdd-4ae2-aeae-cb0379234c87.mock.pstmn.io/get

endpoint1

透過模擬伺服器獲得的響應主體與示例請求相同。

示例請求中獲得的響應如下:

Mocking server

Postman - Cookie

Cookie 是伺服器傳送並在瀏覽器中儲存的資訊。一旦傳送請求,伺服器就會返回 Cookie。在 Postman 中,Cookie 在響應中的標頭和 Cookie 選項卡下提及。

讓我們對端點應用 GET 請求並查詢 Cookie。

在標頭選項卡中,伺服器傳送的 Cookie 使用鍵 - set-cookie 設定。

Cookies1

在 Cookie 選項卡中,相同的 Cookie 詳細資訊也將顯示。

Cookies2

Cookie 管理

在 Postman 中,我們可以透過新增、刪除和修改 Cookie 來管理 Cookie。在 Params 選項卡下,我們有 Cookie 連結來執行 Cookie 操作。

Cookies3

點選 Cookie 連結。將開啟管理 Cookie 彈出視窗,其中所有可用的 Cookie 都存在,並且可以選擇新增和刪除 Cookie。

Delete Cookies

Cookie 新增

按照以下步驟在 Postman 中新增 Cookie:

步驟 1 − 點選新增 Cookie 按鈕。將開啟一個文字框,其中包含預先存在的值。我們可以修改其值,然後點選儲存。

Cookies Addition

步驟 2 − 再次向伺服器傳送請求。

獲取到的響應程式碼為 200 OK。此外,響應中的 Cookies 選項卡現在顯示了新新增的 Cookie – Cookie_Postman。

Cookie

透過程式訪問 Cookies

無需使用 Postman 的 GUI,就可以透過程式設計方式處理 Cookies。要使用 Cookies,我們首先必須生成一個 Cookie 容器。它是一個包含所有 Cookies 以及訪問它們的方法的物件。

Cookie 容器建立

Cookie 容器建立的語法如下所示:

const c = pm.cookies.jar();

Cookie 建立

我們可以使用 .set() 函式建立 Cookie。它接受 URL、Cookie 名稱和 Cookie 值作為引數。

Cookie 建立的語法如下所示:

const c = pm.cookies.jar();
c.set(URL, name of cookie, value of cookie, callback(error, cookie));

獲取 Cookie

我們可以使用 .get() 函式獲取 Cookie。它接受 URL 和 Cookie 名稱作為引數。它返回 Cookie 值。

獲取 Cookie 的語法如下所示:

const c = pm.cookies.jar();
c.set(URL, name of cookie, value of cookie, callback(error, cookie));
c.get(URL, name of cookie, callback(error, cookie));

獲取所有 Cookies

我們可以使用 .getAll() 函式獲取 Cookie 容器中特定 URL 的所有 Cookies。它接受 URL 作為引數。它返回該 URL 的所有 Cookie 值。

獲取所有 Cookies 的語法如下所示:

const c = pm.cookies.jar();
c.set(URL, name of first cookie, value of first cookie, callback(error, cookie));
c.set(URL, name of second cookie, value of second cookie, callback(error, cookie));
c.getAll(URL, callback(error, cookie));

刪除 Cookie

我們可以使用 .unset() 函式刪除 Cookie。它接受要刪除的 URL 和 Cookie 名稱作為引數。

刪除 Cookie 的語法如下所示:

const c = pm.cookies.jar();
c.set(URL, name of cookie, value of cookie, callback(error, cookie));
c.unset(URL, name of cookie, callback(error, cookie));

刪除所有 Cookies

我們可以使用 .clear() 函式刪除特定 URL 的所有 Cookies。它接受 URL 作為引數。它刪除該 URL 的所有 Cookie 值。

刪除所有 Cookies 的語法如下所示:

const c = pm.cookies.jar();
c.set(URL, name of first cookie, value of first cookie, callback(error, cookie));
c.set(URL, name of second cookie, value of second cookie, callback(error, cookie));
c.clear(URL, callback(error, cookie));

Postman - 會話

會話是一個儲存變數值的臨時資料夾。它們用於當前例項,並且具有區域性作用域。在 Postman 中,我們可以修改會話變數值以在團隊之間共享工作區。

Postman 提供了本地會話共享功能。即使集合可以在團隊之間共享,會話也永遠不會共享。在團隊結構中執行任務時,必須生成不同的令牌。

會話在其工作區內的使用者具有區域性作用域,並且他所做的任何修改都不會反映在伺服器中。在 Postman 中,會話可以儲存環境變數、全域性變數等。

我們可以將當前值分配給集合變數以及全域性和環境變數。要將當前值分配給集合,請單擊集合名稱旁邊的三個點,然後單擊“編輯”。

Edit

在“編輯集合”彈出視窗中,轉到“變數”選項卡。

Variables tab

“當前值”對使用者是本地的,並且永遠不會與 Postman 的伺服器同步。我們還可以用“當前值”替換或修改“初始值”。

此外,必須記住,只有當我們對變數應用“持久化”選項時,“初始值”才會受到影響。之後,它將與 Postman 的伺服器同步。

Postman - Newman 概述

Newman 是 Postman 中使用的潛在命令列執行器。我們也可以從命令列執行並驗證 Postman 集合。Newman 具有與 Postman 一致的功能。

我們可以像在集合執行器中一樣,從 Newman 中執行集合中的請求。Newman 可以同時佔用 NPM 登錄檔和 GitHub。我們還可以使用 Newman 執行持續整合或部署。

如果所有執行都無錯誤完成,Newman 將丟擲一個狀態程式碼 0。持續整合工具讀取狀態程式碼並相應地使構建失敗/透過。

我們可以將標誌 --bail 新增到 Newman 中,以便在測試中遇到錯誤時暫停,狀態程式碼為 1。這可以被 CI 工具解釋。Newman 基於 node.js 並使用 npm 作為包管理器。

Newman 安裝

Newman 的安裝需要 Node.js 和 npm。請按照以下步驟安裝 Newman:

步驟 1:導航到連結 - https://nodejs.org/en/download/current/ 下載 Node.js。

Newman Installation

步驟 2 - 下載完成後,執行以下命令以驗證 Node.js 是否已正確安裝。

Windows中驗證安裝的命令如下所示:

node --v

Linux中驗證安裝的命令如下所示:

node --version

下圖顯示系統中安裝了 Node.js 的 v10.15.2 版本。

Node version

步驟 3 - npm 與 Node.js 一起分配,因此一旦我們下載了 Node.js,npm 就會預設下載。要驗證 npm 是否在我們的系統中可用,請執行以下命令:

Windows中驗證安裝的命令如下所示:

npm --v

Linux中驗證安裝的命令如下所示:

npm --version

下圖顯示系統中安裝了 npm 的 5.8.0 版本:

Node version1

步驟 4 - 要安裝 Newman,請執行以下命令:

npm install -g newman.

步驟 5 - 要驗證 newman 的版本,請執行以下命令:

Windows中驗證安裝的命令如下所示:

newman --v

Linux中驗證安裝的命令如下所示:

newman --version

Postman - 使用 Newman 執行集合

要使用 Newman 執行集合,我們必須首先啟動 Postman 應用程式,然後單擊集合名稱旁邊的三個點。有關如何建立集合的詳細資訊將在“Postman 建立集合”一章中詳細討論。

執行集合

請按照以下步驟使用 Newman 執行集合:

步驟 1 - 單擊“匯出”。

Newman

步驟 2 - 從“匯出集合”彈出視窗中選擇Collection v2.1(推薦)選項。單擊“匯出”。

Newman1

步驟 3 - 選擇一個位置,然後單擊“儲存”。

步驟 4 - 接下來,我們將匯出環境。單擊“無環境”下拉列表右側的眼睛圖示

Environment dropdown1

步驟 5 - 單擊“全域性”部分中的“編輯”連結。

Globals section

步驟 6 - “管理環境”彈出窗口出現。為“變數”欄位輸入 URL,為“初始值”輸入https://tutorialspoint.tw。然後,單擊“下載為 JSON”。

最後,選擇首選位置,然後單擊“儲存”。

Location

步驟 7 - 將環境匯出到與集合位於同一位置。

步驟 8 - 從命令列移動到儲存集合和環境的目錄路徑。然後,執行以下命令:

newman run <"file name">.

檔名應始終用反引號括起來;否則它將被視為目錄名。

Newman 的常用命令列引數

Newman 的常用命令列引數如下所示:

  • 要在環境中執行集合,命令如下所示:

newman run <name of Collection> -e <name of Environment>
  • 要執行多次迭代的集合,命令如下所示:

newman run <name of Collection> -n <iteration count>
  • 要使用資料檔案執行集合,命令如下所示:

newman run <name of Collection> --data <name of file> -n <iteration count> -e <name of Environment>
  • 在請求之間配置延遲時間,命令如下所示:

newman run <name of Collection> -d <time of delay>

Postman - OAuth 2.0 授權

OAuth 2.0 是 Postman 中提供的授權技術。在這裡,我們首先獲取訪問 API 的令牌,然後利用該令牌對請求進行身份驗證。令牌用於確保使用者有權訪問伺服器中的資源。

如果我們嘗試在沒有令牌的情況下訪問受保護的 URL,將獲取響應程式碼401 未授權。首先,應用程式為終端使用者訪問資源傳遞授權請求。

當應用程式允許使用者訪問時,它會透過提供使用者資訊來請求伺服器的訪問令牌。反過來,伺服器會生成訪問令牌。然後,客戶端可以透過訪問令牌訪問受保護的資料。

廣告