Postman 簡(jiǎn)介

在你開(kāi)發(fā) Restful API 或者測(cè)試第三方 API 時(shí),我想 Postman 會(huì)是一個(gè)很好的工具。它給用戶提供非常友好的交互頁(yè)面,使得你不必在編寫繁瑣的代碼就能輕松完成 API 測(cè)試。
Postman 官網(wǎng)是這樣介紹這款 Postman 的:Postman 是一個(gè) API 開(kāi)發(fā)的協(xié)作平臺(tái),旨在簡(jiǎn)化構(gòu)建 API 的每個(gè)步驟并簡(jiǎn)化協(xié)作,這樣您就可以更快地創(chuàng)建更好的 API。
簡(jiǎn)單來(lái)說(shuō),Postman 就是一個(gè) API 客戶端,在 Postman 中你可以直接快速、輕松地分布任何請(qǐng)求。
1. Postman 的發(fā)展史
Postman 的兩個(gè)聯(lián)合創(chuàng)始人 Abhinav Asthana 和 Ankit Sobti 最開(kāi)始是在 Yahoo 構(gòu)建一個(gè)應(yīng)用程序的前端架構(gòu),那時(shí)他們必須使用 API。他們意識(shí)到缺少支持 API 開(kāi)發(fā)的工具,于是坐下來(lái)編寫代碼解決這個(gè)問(wèn)題,并將其發(fā)布在谷歌的網(wǎng)上商店——這就是 Postman 最早的由來(lái)。
2012 年,在谷歌的網(wǎng)絡(luò)商店上,Postman 已經(jīng)有了將近 2000 次下載。于是他們開(kāi)始更加仔細(xì)地研究這個(gè)領(lǐng)域,發(fā)現(xiàn)人們迫切的需要一個(gè) API 工作流,從概念化到文檔的發(fā)布再到 API 的傳播。
于是, Postman 就從一個(gè)業(yè)余項(xiàng)目發(fā)展成為了一個(gè)許多世界頂級(jí)組織使用的 API 平臺(tái)。截止到目前現(xiàn)在全世界有已經(jīng)有超過(guò) 600 萬(wàn)的開(kāi)發(fā)者在使用 Postman。
2. Postman 的版本歷史
Postman 的主要發(fā)行版本有 Postman v7 和 v6/v5。v7 又有很多細(xì)碎的版本,從 v7.0.6 到 v7.27.1 不等。Postman v7 和之前版本最大的不同在于:Postman v7 版本提供了基于角色的訪問(wèn)控制,在集合、團(tuán)隊(duì)和工作空間級(jí)別提供了更強(qiáng)健的權(quán)限管理功能。
Tips:本教程將使用 Postman v 7.27.1 進(jìn)行教學(xué)。
3. Postman 特性
工作空間:支持軟件開(kāi)發(fā)期間的團(tuán)隊(duì)協(xié)作
用 Postman 的免費(fèi)賬號(hào)就可以創(chuàng)建個(gè)人工作空間,你可以邀請(qǐng)團(tuán)隊(duì)其他成員加入該工作空間,在該工作空間協(xié)同合作。
集合:按目的組織的一系列 HTTP 請(qǐng)求
集合是最常用的API格式。使用集合可以將請(qǐng)求、參數(shù)、描述、測(cè)試和腳本都組織在一個(gè)文件夾中??梢酝ㄟ^(guò)共享集合在 API 上進(jìn)行協(xié)作,并在集合上構(gòu)建測(cè)試套件、文檔、模擬服務(wù)器和監(jiān)視器。
環(huán)境:私人信息的存儲(chǔ)和保護(hù)
為了在不同的服務(wù)器上運(yùn)行 API,可以在 Postman 中使用環(huán)境變量。這些變量幾乎可以在任何地方使用。使用雙括號(hào)訪問(wèn)變量。
測(cè)試腳本:使用 JavaScript 為每個(gè)請(qǐng)求編寫和運(yùn)行測(cè)試。
一個(gè)測(cè)試 API 是否返回 JSON 字符串“127.0.0.1”的測(cè)試腳本:
pm.test("IP Address", function(){
pm.expect(pm.response.json()).to.equal("127.0.0.1");
});
變量——允許引用本地存儲(chǔ)的數(shù)據(jù)而不泄露敏感信息
4. 與其他軟件對(duì)比
除了 Postman 之外,市面上還有一些其他受歡迎的 API 工具,下面就來(lái)比較下這些工具和 Postman 的優(yōu)缺點(diǎn)。
4.1 Paw
Paw 是一款功能齊全、設(shè)計(jì)精美的 Mac 應(yīng)用程序。良好的界面是 Paw 勝過(guò) Postman 之處。簡(jiǎn)而言之,Paw 稱得上是 MAC 系統(tǒng)上最強(qiáng)的 API 工具,不過(guò) Paw 是收費(fèi)的。
4.2 Swagger UI
Swagger UI 相較于 Postman 最大的優(yōu)勢(shì)在于不依賴 HTML、JavaScript 和 CSS 就可以在 web 頁(yè)面上動(dòng)態(tài)生成漂亮的 API 文檔。
但它不像 Postman 這樣的接口測(cè)試客戶端,在界面上點(diǎn)選以及輸入就可以發(fā)送請(qǐng)求。Swagger UI 需要在后臺(tái)代碼中做一些配置甚至寫一些代碼才能實(shí)現(xiàn),相對(duì)來(lái)說(shuō),Swagger UI 的學(xué)習(xí)和接入成本較高。
總而言之,Postman 以簡(jiǎn)單易用而知名,并在 1725 個(gè)公司棧和 2166 個(gè)開(kāi)發(fā)者棧中被提及,得到了廣大開(kāi)發(fā)者的認(rèn)可。
5. 為什么要用 Postman
首先在項(xiàng)目初期,測(cè)試人員提前介入,進(jìn)行接口測(cè)試,模擬客戶端與服務(wù)端的交互。有問(wèn)題提前拋出來(lái)。保證接口調(diào)用是沒(méi)問(wèn)題的。其次,接口測(cè)試完成之后再進(jìn)行系統(tǒng)測(cè)試,會(huì)輕松很多。明白了各個(gè)接口在做什么,各個(gè)參數(shù)的模擬實(shí)際上就是業(yè)務(wù)場(chǎng)景的模擬。系統(tǒng)測(cè)試出現(xiàn)一些問(wèn)題可以更快速的定位是客戶端還是服務(wù)端出問(wèn)題。
另外,接口是獲取和操作資源的方式,而大部分系統(tǒng)和產(chǎn)品中,資源一般都是產(chǎn)品的核心,比如微信核心資源就是通訊錄關(guān)系鏈和聊天記錄等,因此資源是必測(cè)的。
而接口中大部分的內(nèi)容是數(shù)據(jù),通過(guò)數(shù)據(jù)的對(duì)比我們能推測(cè)到系統(tǒng)和產(chǎn)品的邏輯,測(cè)接口就是測(cè)邏輯。最后接口中的返回相對(duì)單純,不像 web 頁(yè)面,HTML 代碼中有太多 UI 的東西,UI 最不穩(wěn)定,變化太快,接口相對(duì)穩(wěn)定一點(diǎn)點(diǎn),但是里面的干擾信息更少,斷言相對(duì)容易很多。
6. 學(xué)習(xí)基礎(chǔ)
學(xué)習(xí)使用 Postman 最好是有一定的后端開(kāi)發(fā)或測(cè)試基礎(chǔ),或者是正在學(xué)習(xí)如何編寫 Restful API 接口程序。 當(dāng)然,如果你沒(méi)有任何基礎(chǔ)知識(shí)也不必?fù)?dān)心,本教程會(huì)盡量使用通俗易懂的語(yǔ)言來(lái)講解知識(shí)點(diǎn)。
這篇文章主要介紹了 Postman教程的一些基本知識(shí),對(duì)于要驗(yàn)證自己的 API 或第三方 API 的同學(xué),Postman 是一個(gè)很好的快速入門上手的工具。