Postman 使用教程 - API 接口自動化測試初探
本文首發:Postman 使用教程 - API 接口自動化測試初探 - 卡拉雲
Postman 是一套 API 接口測試工具,它的強大在於靈活趁手的自動化接口測試流程,極大的提高了 API 測試效率。本教程將由淺入深,帶領大家一起學習如何使用 Postman 進行接口測試及如何進行 API 接口自動化批量測試。
API 是什么?
API的英文即Application Programming Interface首字母的縮寫。不要被這么長的單詞嚇到,直譯過來的意思就是:程序之間的接口。我更傾向於把API理解為,程序之間的合約。有關 API 是什么及它的意義這里就不展開講了,了解更多可看卡拉雲博客之前的文章《API是什么: 一篇講透API》
Postman 是什么?
Postman 是一款 API 開發協作工具,它可以幫助你測試和開發 API,Postman 提供了測試 API 的友好界面和功能,使用簡單便捷,安全可靠。Postman 是 API 接口測試工具的 Top 3,因為它簡單可靠又免費,目前有超過 800 萬開發者用戶使用。特別是 API 批量測試功能,在近幾次的大版本更新中,用戶體驗得到了極大的提升。Postman 是每一位前后端開發者必掌握的開發工具。
擴展閱讀:更多 API 測試工具選擇可看這篇《最好用的七大頂級 API 接口測試工具》
接下來,我們來一起通過實踐學習 Postman 從安裝到 API 自動化接口測試的全過程,建議你上手跟隨本教程一步一步操作,可更好理解 Postman 功能精髓。
一. 如何安裝 Postman

前往 Postman 官網免費下載,安裝非常傻瓜。Postman 支持 Windows、Mac 和 Linux,也可以直接跑在瀏覽器里,使用相當便捷。
二. Postman 功能概覽
Postman 經過多次迭代,整個界面沒有冗余功能,直接看主界面,Postman 主要功能一目了然。

-
「New」在這里創建請求、測試集合、環境,還可以創建 API 文檔、Mock Server、API -
「Import」 導入功能可以導入測試集合、環境等信息 -
「HTTP Request」點擊可查看請求選項,比如有GET, POST, COPY, DELETE 等,在 API 測試中,最常用等請求是 GET 和 POST -
「Request URL」 API 的鏈接,發送和接受請求的鏈接 -
「Save」 保持按鈕,Postman 不會自動保存,需要我們手動點擊保存按鈕 -
「Request tab」請求標簽卡,這里顯示我們當前正在處理的請求 -
「Params」 這里可填入請求需要的參數,比如Key - Value -
「Auth」遠程訪問 API時,需要提交的身份認證信息,比如 username、password、token 等 -
「Headers」 請求頭信息 -
「Body」 請求體信息,一般在 POST 中才會用到 -
「Pre-req」 在請求之前 先執行腳本 -
「Tests」可創建 Postman 測試斷言,用來設置監測點自動化檢測 API 是否達到預期 -
「Collections」 測試集合,類似樹狀結構的文件夾,放在同一個文件夾的 API 可一起進行批量測試、編輯和復制。 -
「History」測試的 log,可方便查詢 Postman 對你的 API 進行了哪些操作 -
「Runner」 可以通過 Collection Runner 執行自動化測試,后文詳細介紹 -
「My Workspace」創建工作區可與團隊成員共享使用 -
「Invite」可邀請團隊成員一起協同測試
三. 如何使用 Postman 處理 GET 請求
本教程使用模擬 API 工具 「JSONPlaceholder」進行 API 模擬操作。
https://jsonplaceholder.typicode.com/users

1.點擊「+」新建一個請求
2.選擇觸發動作 GET
3.輸入 API 地址:https://jsonplaceholder.typicode.com/users
4.點擊「Send」測試開始
5.測試完成后,可看到狀態 200,表示 API 聯通並成功返回結果
6.GET API 返回的結果值 - JSON 文件,返回了 10 組數據
四. 如何使用 Postman 處理 POST 請求
接着我們新建一個 POST 請求,然后提交一組數據,數據如下:
[
{
"id": 11,
"name": "Kalacloud",
"username": "kalacloud",
"email": "super@kalacloud.com"
",
"address": {
"street": "xisanhuan",
"suite": "19",
"city": "beijing",
"zipcode": "100841",
"geo": {
"lat": "116.20",
"lng": "39.56"
}
},
"phone": "13977777777 x56442",
"website": "kalacloud.com",
"company": {
"name": "kalacloud",
"catchPhrase": "-",
"bs": "-"
}
}
]

1.新建一個請求標簽
2.選擇 POST 請求類型
3.輸入 API 網址
4.點擊 Body
5.選擇 raw
6.選擇 JSON 格式
7.填入上文的代碼並點擊測試
8.測試結果為 201 測試通過
9.POST 添加的內容已經完成,返回值 ID:11
五. 如何將請求參數化 - 全局變量、環境變量、集合變量
上面將的 GET
和 POST
只是常規 API 測試功能。接下來我們開始進入 API 自動化測試的部分,也是 Postman 的精華。自定義變量可以幫助我們在批量測試時,根據不同場景設定規則,讓 Postman 根據規則自動測試一些列的測試項目。
我們先來看個變量樣例:

1.可以看到原來的網址被{{kalacloud_url}}
所取代。
2.JSON 文件中數值被變量取代。
3.這是 Postman 的一個核心功能,數值變量化,在右上角的小眼睛里設置。
我們來看一下,Postman 三種常見的變量形式,以及如何定義變量
Postman 常用的三種變量形式
-
全局變量:全局變量一旦聲明,即可應用到 Postman 中所有測試的 API 中。任何請求都可以直接使用全局變量,它的作用域是全局的。 -
環境變量:Postman 的環境變量可以理解為一組選項,當這組環境變量選項被選中時,才會生效,如上圖中紅3位置「卡拉雲_API 測試 Demo」選項一樣,選中時生效。 -
集合變量:集合變量是針對集合(Collections)生效的,一個集合下可能有 N 條 API 測試,集合變量可以一次修改集合下的所有變量數值。
以上三種變量的作用域從大到小為 全局 > 集合 > 環境,當三個變量形式同時作用於一個 API 測試條時,Postman 會優先使用最小作用域變量。
六. Postman 定義變量的方法
全局變量與環境變量設置

1.點擊右上角的小眼睛進入變量設置頁面
2.上面為環境變量設置,當選中環境變量時(小眼睛 icon 的左邊進行選擇)此測試應用環境變量。
3.這里可以設置全局變量,全局變量應用在所有 API 接口測試環境中。
集合變量設置

集合變量在集合的條目后面點擊「...」選擇編輯 → Variables 在這里進行設置。
變量設置與應用
上文中,我們設置了 {{kalacloud_url}}
為 https://jsonplaceholder.typicode.com
,設置 {{kalacloud_id}}
為 11
我們把下面的 JSON 填入 Postman 相應位置,看看是否可執行。
[
{
"id":" {{kalacloud_id}}",
"name": "Kalacloud",
"username": "kalacloud",
"email": "super@kalacloud.com"
}
]

1.選擇剛剛設置好的環境變量 2.在網址和 JSON 中都可以使用全局變量及環境變量 3.執行后,返回 201 並且 ID 返回為 11,變量設置成功
七. 如何創建 Postman Tests - Postman 斷言功能
Postman 可以在 Tests 中自動生成 JavaScript 校驗代碼協助我們驗證結果,這與上面我們講到的變量設置一樣,斷言功能,也是 API 接口自動化測試中重要的一環。
(1)Postman 斷言概覽
-
斷言設置:Tests 選項卡 -
斷言語言:JavaScript -
斷言執行原理:在相應體數據返回后執行 -
斷言結果查看: Test Results 選項中查看
有關斷言的設置,我們一起操作一遍你就明白了。
(2)Postman 斷言的實際應用
-
Postman 狀態類斷言

1.我們首先創建一個 GET 請求,然后點擊 Postman 中 Tests 標簽,進入斷言設置。
2.我們可以在右側已經預設好的斷言代碼,我們先點擊「Status code: Code is 200」,可以看到預設的代碼直接寫入編輯框。
3.點擊「Send」執行 GET,返回的斷言可以在 Test Results 中看到,綠色的 PASS,說明執行成功。
-
Postman 結果比較類斷言
我們再添加一條帶有變量的 JavaScript 斷言設置,比較預期結果和實際結果之間是否一致。

1.在 Tests 選項卡右側選擇「Response body:JSON value check」,我們來檢測 ID 為 1 的返回值中,name
的值是否為 Leanne Graham
。
2.我們將「Your Test Name」替換為「檢查 ID 為 1 的 name 返回值為 Leanne Graham」讓這條測試的名字直接反應出我們想測試的內容。
3.使用jsonData[0].name
代替jsonData.value
,在剛剛的返回結果中,我們知道 ID 1 中的 name 值為 Leanne Graham
,這個結果是從 [0] 開始的。
4.檢測返回值:在 to.eql()
中輸入待檢測值 "Leanne Graham"
5.代碼如下,你可以直接復制到你的 Postman 中,跟隨教程一起測試
pm.test("檢查 ID 為 1 的 name 返回值為 Leanne Graham", function () {
var jsonData = pm.response.json();
pm.expect(jsonData[0].name).to.eql("Leanne Graham");
});

執行 GET 后,我們可以看到 Tests 的返回結果,ID 1. name 為 Leanne Graham 為 PASS
。此功能幫助我們比較了預設值與實際返回值是否一致,在自動化測試中十分有用。
八. 如何創建 Postman 測試集合

Postman 在這次升級之后,創建測試合集的步驟極大被簡化了。創建測試集合只需要點擊上圖中的「+」,然后給集合重命名即可。
然后我們在合集中創建多個測試條目,方便我們之后按照集合自動化測試。
九. 如何使用 Runner 批量執行 - API 接口自動化測試雛型

1.點擊需要批量運行的集合的「...」然后選擇「Run collection」進入 Runner 設置頁面
2.iterations 是指遍歷測試的次數,這次測試我們設置為 3
3.Delay 是指測試之間的延遲時間,這次設置為 2000ms
4.測試數據,配合上文講解的參數化功能,以達到自動化測試的目的
5.配置好之后,點擊 Run 開始批量執行

點擊 Run 之后,Postman 按照設定連續執行合集里的 API 測試,並進行 3 組測試。到這里,Postman API 接口批量自動化測試的雛型已經出來了。在未來更復雜的 Postman 自動化接口測試流程也是有以上這些功能點構成的,你現在已經掌握了 Postman 自動化接口測試方法。
十. 總結
本文從 GET / POST 功能開始講起,然后詳細講解了 API 接口自動化測試所需要的幾個功能特點,全局/環境/集合變量設置,測試斷言,測試集合等,以及最后的自動化測試工具 Runner。這些功能共同構成了 Postman API 接口自動化測試功能。
接着推薦一下卡拉雲,卡拉雲是一套低代碼開發工具,支持多種數據庫及 API 接入。你不僅可以在卡拉雲中測試 API ,還能直接把返回的結果映射到組件上,不用寫一行代碼,只需簡單拖拽即可搭建屬於你自己的后台工具。

上圖為使用「卡拉雲」調用金數據 API ,然后將返回結果直接映射到表格組件中。你僅需一步,即驗證了 API 可用性,又直接把你正在搭的工具給作出來了。立即試用卡拉雲,一分鍾快速搭建屬於你自己的 API 工具。
更多數據庫相關教程可訪問 卡拉雲 查看。