PostMan 基礎(chǔ)知識(shí)
1. PostMan 介紹

????????Postman 是一款支持 Http 協(xié)議的接口調(diào)試與測試工具,其主要特點(diǎn)就是功能強(qiáng)大,使用簡單且易用性好 。無論是開發(fā)人員進(jìn)行接口調(diào)試,還是測試人員做接口測試,Postman 都是我們的首選工具之一。

Postman Echo APIs 學(xué)習(xí)地址:https://postman-echo.com

背景:因?yàn)榻涌跍y試依賴后端平臺(tái)(Server),但是受環(huán)境限制,并沒有這個(gè)后端平臺(tái)(Server)可以使用,所以現(xiàn)在需要使用 PostMan 的 Mock-Server 功能模擬(Mock)一個(gè)后端平臺(tái)(Server)。
Mocking with examples(通過樣例創(chuàng)建模擬服務(wù))
模擬服務(wù)(Mock Server)搭建過程中用到了許多后續(xù)需要學(xué)習(xí)的概念,例如 Request、Collection、Example、Response、Variable、Environment,這些概念在后續(xù)的內(nèi)容中都會(huì)介紹,這里可以不用太在意,按照如下步驟完成搭建就可以。

Step 1: Send a request,創(chuàng)建一個(gè)請(qǐng)求,作為后續(xù)創(chuàng)建 Mock Server 接口請(qǐng)求基本參照。

Step 2: Save the request to a collection,將請(qǐng)求保存至一個(gè)用例集(Collections),因?yàn)楹罄m(xù)需要基于用例集創(chuàng)建 Mock Server。

Step 3: Save a response as an example,將此次請(qǐng)求和響應(yīng)(Response)數(shù)據(jù)保存成一個(gè)樣例,一定要注意,樣例(Example)里面保存了請(qǐng)求地址,參數(shù),響應(yīng)狀態(tài)碼,響應(yīng)體等 HTTP 協(xié)議數(shù)據(jù),因?yàn)榭梢詾橐粋€(gè)請(qǐng)求(Request?)創(chuàng)建多個(gè)(Example)樣例,每個(gè)樣例(Example)請(qǐng)求參數(shù)和響應(yīng)結(jié)果可以不一致,同樣,Mock Server 會(huì)根據(jù)請(qǐng)求數(shù)據(jù)的不同,返回對(duì)應(yīng)的數(shù)據(jù)。

Step 4: Create a mock server for the collection,為用例集(Collection)創(chuàng)建 Mock Server。創(chuàng)建用例集模擬(Mock)服務(wù)的時(shí)候,建議同時(shí)創(chuàng)建一個(gè)模擬(Mock)環(huán)境(Environment)。當(dāng)然,如果用例中并沒有用到變量(Variable),也就沒辦法創(chuàng)建對(duì)應(yīng)的模擬環(huán)境(Environment)。

Step 5: Send a request to the mock server,修改環(huán)境(Environment)或者直接復(fù)制 Mock-Server 的訪問地址(RUL)。
如果上述文字的內(nèi)容閱讀和理解有那么一點(diǎn)點(diǎn)困難,可以參考如下視頻。


3.?HTTP 協(xié)議基本概念

4. 發(fā)送第一個(gè)請(qǐng)求
????????PostMan 軟件已經(jīng)安裝完成,后端服務(wù)也已經(jīng)通過 Mock Server 配置好,接下來的事情就是了解 PostMan 軟件的基本功能和 HTTP 協(xié)議相關(guān)的基本概念。

打開 Postman 并嘗試以下操作:

在此示例中,Postman 充當(dāng)客戶端應(yīng)用程序并與 后端接口服務(wù)器通信。以下是點(diǎn)擊?Send?時(shí)發(fā)生的情況:

5. 選擇請(qǐng)求方法

默認(rèn)情況下,Postman 將選擇GET
新請(qǐng)求的方法。GET
方法通常用于從 API 檢索數(shù)據(jù)。可以使用多種其他方法將數(shù)據(jù)發(fā)送到待測試接口,包括以下最常見的選項(xiàng)。
競賽題目中會(huì)明確給出待測試接口的請(qǐng)求方法,只需要按照要求選擇相應(yīng)的方法即可。
6. 構(gòu)造請(qǐng)求參數(shù)

① URL 參數(shù)
可以使用 URL 字段和 “參數(shù)” 選項(xiàng)卡隨請(qǐng)求發(fā)送路徑和查詢參數(shù)。

② Body 參數(shù)
當(dāng)需要添加或更新結(jié)構(gòu)化數(shù)據(jù)時(shí),您都需要發(fā)送帶有請(qǐng)求的正文數(shù)據(jù)。例如,如果您要發(fā)送將新客戶添加到數(shù)據(jù)庫的請(qǐng)求,您可能會(huì)在 JSON 中包含客戶詳細(xì)信息。通常,會(huì)將正文數(shù)據(jù)與PUT
、POST
和PATCH
請(qǐng)求一起使用。
Postman 中的?Body?選項(xiàng)卡允許指定需要隨請(qǐng)求一起發(fā)送的數(shù)據(jù)。可以發(fā)送各種不同類型的正文數(shù)據(jù)以適合帶測試接口。
如果要發(fā)送 Body 數(shù)據(jù),請(qǐng)確保選擇了正確的請(qǐng)求頭(Content-Type)以指示接口可正確處理接收到的數(shù)據(jù)的內(nèi)容類型。
③ Content-Type 請(qǐng)求頭格式
Content-Type 的格式有四種:分別是 application/x-www-form-urlencoded(這也是默認(rèn)格式)application/json、text/xml 以及 multipart/form-data 格式。

Collections集合:也就是將多個(gè)接口請(qǐng)求可以放在一起,并管理起來。
8. 斷言 - Assert
斷言主要是在 Test 操作框內(nèi)進(jìn)行設(shè)置,使用 JavaScript 語言編寫,斷言的結(jié)果在下方響應(yīng)內(nèi)容的 TestResult 內(nèi)。

說明:響應(yīng)正文必須等于某個(gè)字符串或者 JSON 對(duì)象。
9. PostMan 變量

????????變量能夠在 Postman 中存儲(chǔ)和重用值。通過將值存儲(chǔ)為變量,可以在整個(gè)集合、環(huán)境、請(qǐng)求和測試腳本中引用它。
①?變量范圍
Postman 支持不同范圍的變量,允許用戶針對(duì)各種開發(fā)、測試和協(xié)作任務(wù)定制處理。Postman 中的作用域與請(qǐng)求運(yùn)行的不同上下文相關(guān),不同的變量作用域適用于不同的任務(wù)。按照優(yōu)先級(jí)從低到高的順序分別是:global(全局)、collection(用例集)、environment(環(huán)境)、data(數(shù)據(jù))和 local(局部)。
② 定義全局變量

③ 定義環(huán)境變量
在環(huán)境與環(huán)境之間可以定義重復(fù)的變量;一個(gè)環(huán)境變量可以包含多個(gè)環(huán)境變量;

④ 在腳本中定義變量
m.globals
用于定義全局變量。
pm.environment
用于在當(dāng)前選擇的環(huán)境中定義一個(gè)環(huán)境變量。
⑤ 使用變量
可以使用雙花括號(hào)來引用整個(gè) Postman 中的變量。例如,要在請(qǐng)求授權(quán)設(shè)置中引用名為 “用戶名” 的變量,可以使用以下語法,并在名稱周圍加上雙花括號(hào):
當(dāng)運(yùn)行請(qǐng)求時(shí),Postman 將解析變量并將其替換為當(dāng)前值。例如,您可以有一個(gè)引用變量的請(qǐng)求 URL,如下所示:
可以在請(qǐng)求 URL、參數(shù)、標(biāo)頭、授權(quán)、正文和標(biāo)頭預(yù)設(shè)中使用變量。

⑥ 在腳本中使用變量
可以使用表示范圍級(jí)別的對(duì)象和方法來檢索腳本中變量的當(dāng)前值.get
:
10. PostMan 中的腳本編碼
Postman 包含一個(gè)基于 Node.js 的強(qiáng)大運(yùn)行時(shí),允許您向請(qǐng)求和集合添加動(dòng)態(tài)行為。這允許您編寫 API 測試、構(gòu)建可以包含動(dòng)態(tài)參數(shù)的請(qǐng)求、在請(qǐng)求之間傳遞數(shù)據(jù)等等。
可以添加 JavaScript 代碼以在流程中的 2 個(gè)事件期間執(zhí)行:
在將請(qǐng)求發(fā)送到服務(wù)器之前,在?Pre-request Script?選項(xiàng)卡下編寫?前置腳本。
收到響應(yīng)后,在?Test?選項(xiàng)卡下的測試腳本(后置腳本)。
腳本的執(zhí)行順序,在 Postman 中,單個(gè)請(qǐng)求的腳本執(zhí)行順序如下所示:前置請(qǐng)求 -> 發(fā)送請(qǐng)求 -> 響應(yīng)返回 -> 測試腳本(后置腳本)。

11. 編寫請(qǐng)求前置腳本

請(qǐng)求前置腳本的使用場景:在請(qǐng)求url中需要使用隨機(jī)數(shù)或時(shí)間戳;需要對(duì)敏感數(shù)據(jù)進(jìn)行加密。
前置腳本編寫舉例:

依賴
1. 接口 1 返回響應(yīng)數(shù)據(jù)之后(Tests 標(biāo)簽),將相應(yīng)數(shù)據(jù)寫入到全局變量 token 中。
2. 接口 2 請(qǐng)求發(fā)送之前,將全局變量 token 寫入到請(qǐng)求數(shù)據(jù)中(前置腳本 Pre-request Scrip 標(biāo)簽)或者直接在請(qǐng)求參數(shù)、請(qǐng)求體或者請(qǐng)求頭中使用。

雙擊用例集 ->? 點(diǎn)擊 Run 按鈕,打開 Runner 組件,設(shè)置相關(guān)屬性即可
① 執(zhí)行次數(shù) ②?每次迭代請(qǐng)求的間隔時(shí)間 ③ 請(qǐng)求數(shù)據(jù)


① 數(shù)據(jù)驅(qū)動(dòng)
執(zhí)行測試用例的過程,本質(zhì)上是執(zhí)行的不同數(shù)據(jù),不同輸入輸出的過程。所以,在計(jì)算機(jī)中,我們可以使用預(yù)先設(shè)定好的數(shù)據(jù)文件,來執(zhí)行測試用例,實(shí)現(xiàn)覆蓋測試點(diǎn)。
② 參數(shù)化概念
請(qǐng)求參數(shù)中,不寫實(shí)際的值,而是寫成 {{變量名}} 的形式,就是參數(shù)化。
③ 具體流程

Cookie 是由訪問過的網(wǎng)站提供給您的一個(gè)基于文本的小型文件,可以幫助您識(shí)別到該站點(diǎn)。使用 cookie 可以導(dǎo)航到網(wǎng)站上的不同網(wǎng)頁或在以后返回到該網(wǎng)站維護(hù)狀態(tài)信息。
① Cookie 鑒權(quán)與狀態(tài)維護(hù)
