Postman 誕生于 2013 年,一開始隻是 Abhinav Asthana 着手于解決 API 測試的工具,随着這個工具的使用者和需求迅速激增,Abhinav Asthana 找了他的兩個前同僚 Ankit Sobti 和 Abhijit Kane 一起建立了公司 Postman Inc。

如今 Postman 已經成為一個 API 開發的協作平台。Postman 簡化了建構 API 的每個步驟,并簡化了協作,這樣就可以更快地建立 API。
Postman 允許使用者在發送和接收時使用變量,以提高工作效率和可讀性(不過隻能儲存字元串類型的值,是以複雜資料類型需要借助于 <code>JSON.stringify()</code> 和 <code>JSON.parse()</code> 來管理)。
例如在不同運作環境中設定域名位址為變量:
Postman 支援在不同的作用域和上下文中使用變量,遵循就近原則,即如果在 <code>Global</code> 和 <code>Environment</code> 中都有變量 <code>name</code>,則會取 <code>Environment</code> 中的 <code>name</code>。
Global:全局變量可以在整個工作空間(Workspace)中使用,因為無法控制使用環境和容易造成混淆,應當是不可變的全局常量,謹慎使用。
Collection:集合變量在單個集合(Collection)中可用,往往具備通用的業務綁定屬性,例如:商品屬性、會員等級、通用秘鑰等。
Environment:環境變量允許請求适應不同的環境,例如:本地、測試、預演和生産環境,常常用來差別請求位址。
Data: 資料變量來自外部 CSV 和 JSON 檔案,當通過 Newman 或 Runner 來運作時才用到。
Local:局部變量隻在單個請求生命周期中可用,運作完成後自動銷毀。
Postman 内置了很多常見場景的動态變量。
備注:Postman 支援在 Pre-request Script 和 Tests 中列印調試資訊,和浏覽器控制台一緻,可以使用指令:<code>console.log()</code>、<code>console.info()</code>、<code>console.warn()</code> 和 <code>console.error()</code>。
在 Postman 中,一個完整的 Postman 請求生命周期,除了正常的請求(request)和響應(response),還包括前置請求腳本(pre-request script)和後置測試腳本(tests script)。Postman 包含一個基于 Node.js 的強大運作态(runtime),允許使用者在 pre-request script 和 tests 事件中編寫 JavaScript 代碼。
前置請求腳本(pre-request script)顧名思義就是在請求發送之前執行的腳本。
小技巧一:在連結中使用 <code>:id</code> 自定義路徑參數
小技巧二:Cookie 可編輯
小技巧:儲存響應結果
儲存後的結果可以作為案例或記錄以便開發使用。
Postman 支援在請求響應後通過測試腳本來驗證請求是否符合預期。
示例一:驗證響應狀态碼是否是 200
示例二:驗證傳回的業務資料(JSON)是否符合預期
在 Postman 應用程式中有一個内置代理來捕獲 HTTP 請求。
Postman 應用程式監聽用戶端應用程式或裝置發出的任何調用。
Postman 代理捕獲請求并将請求轉發給伺服器。
伺服器通過 Postman 代理将響應傳回給用戶端。
本機 IP 位址:
手機設定:
代理伺服器是一個應用程式或系統,作為計算機和網際網路之間的中介,或者更具體地說就是代表着用戶端和伺服器,向網站、伺服器和其他網際網路服務送出請求。
除了傳遞資訊,代理可以做更多的事情:
記錄你的機器和網際網路之間的所有流量。
顯示所有請求、響應、Cookie 和标題的内容。
路由流量到指定的網際網路位置。
調試接口。
防止直接攻擊,保證安全性。
DevOps 負載平衡。
預設情況下,Postman 将使用自帶的系統代理,如果自定義了代理,優先級将高于自帶的系統代理。
集合運作器(Collection Runner)允許以指定順序運作集合裡面的請求。Collection Runner 将記錄請求測試結果,并且腳本可以在請求之間傳遞資料。
Postman 提供腳手架工具 Newman 來以指令行的方式來運作集合(Collection)請求,其提供和 Postman 桌面端一緻的功能,可以內建在工作流的 CI/CD 中。
另外 Postman 提供了很多團隊協作需要的付費功能,例如:文檔、監控、健康檢查等。
版權聲明
本部落格所有的原創文章,作者皆保留版權。轉載必須包含本聲明,保持本文完整,并以超連結形式注明作者後除和本文原始位址:https://blog.mazey.net/1878.html
GitHub:mazeyqian
Blog:blog.mazey.net