Postman 是一個接口測試和 http 請求的神器,很是好用。html
官方 github 地址: https://github.com/postmanlabs前端
Postman 的優勢:git
支持各類的請求類型: get、post、put、patch、delete 等github
支持在線存儲數據,經過帳號就能夠進行遷移數據web
很方便的支持請求 header 和請求參數的設置chrome
支持不一樣的認證機制,包括 Basic Auth,Digest Auth,OAuth 1.0,OAuth 2.0 等json
響應數據是自動按照語法格式高亮的,包括 HTML,JSON 和 XMLapi
Postman 能夠單獨做爲一個應用安裝,也能夠做爲 chrome 的一個插件安裝。服務器
chrome 插件安裝, Postman 插件地址(https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop)markdown
單獨應用安裝下載(http://files.cnblogs.com/files/mafly/postman-4.1.2.rar)
下面主要介紹下載安裝獨立版本app 軟件的 Postman 的過程:
去主頁Postman 官網(https://www.getpostman.com/)找到:Postman | Apps(https://www.getpostman.com/apps)
去下載本身平臺的版本:
Mac Windows(x86/x64) Linux(x86/x64)
便可。
4.1 新建接口
對應的Request:New -> Request
Postman新建Request
或在右邊的 Tab 頁面中點擊加號+:
Postman在Tab頁新建Request
便可看到新建的 Tab 頁:
Postman新建了的Tab頁的Request
4.1.1 設置 HTTP 請求的方法
設置 HTTP 的 Method 方法和輸入 api 的地址
Postman設置Method和輸入API地址
4.1.2 設置相關請求頭信息
Postman設置Header頭的key
Postman設置Header頭的value
4.1.3 設置相關 GET 或 POST 等的參數
Postman設置POST的Body的JSON
4.1.4 發送請求
都填寫好以後,點擊 Send 去發送請求 Request:
Postman點擊發送請求
4.1.5 查看響應 Response的信息
Postman返回響應
而後能夠重複上述修改 Request 的參數,點擊 Send 去發送請求的過程,以便調試到 API 接口正常工做爲止。
4.1.6 保存接口配置
待整個接口都調試完畢後,記得點擊 Save 去保存接口信息:
Postman點擊Save保存
去保存當前 API 接口,而後須要填寫相關的接口信息:
Request Name: 請求的名字
我通常習慣用保存爲 接口的最後的字段名,好比http://{% raw %}{{% endraw %}{server_address}}/ucows/login/login中的/login/login
Request Description: 接口的描述
可選 最好寫上該接口的要實現的基本功能和相關注意事項
支持 Markdown 語法
Select a collection or folder to save: 選擇要保存到哪一個分組(或文件夾)
每每保存到某個 API 接口到所屬的該項目名的分組
Postman保存時填寫接口信息
填寫好內容,選擇好分組,再點擊保存:
Postman保存到分組
此時,Tab 的右上角的黃色點(表示沒有保存)消失了,表示已保存。
且對應的分組中能夠看到對應的接口了:
Postman已保存的API接口Tab頁
[warning] 默認不保存返回的 Response 數據
直接點擊 Save 去保存,只能保存 API 自己(的 Request 請求),不會保存 Response 的數據
想要保存 Response 數據,須要用後面要介紹的 多個 Example
4.2 Request 的多參數操做詳解
4.2.1 自動解析多個參數 Params
好比,對於一個 GET 的請求的 url 是: http://openapi.youdao.com/api?q=糾刪碼(EC)的學習&from=zh_CHS&to=EN&appKey=152e0e77723a0026&salt=4&sign=6BE15F1868019AD71C442E6399DB1FE4
對應着實際上是?key=value形式中包含多個 Http 的 GET 的 query string=query parameters
Postman 能夠自動幫咱們解析出對應參數,能夠點擊 Params:
Postman中GET時多個參數
看到展開的多個參數:
Postman中GET中展開的多個參數
如此就能夠很方便的修改,增刪對應的參數了。
4.2.2 臨時禁用參數
且還支持,在不刪除某參數的狀況下,若是想要暫時不傳參數,能夠方便的經過不勾選的方式去實現:
Postman中不勾選個別參數
4.2.3 批量編輯 GET 的多個參數
固然,若是想要批量的編輯參數,能夠點擊右上角的Bulk Edit,去實現批量編輯。
Postman批量編輯GET參數
4.3 接口描述與自動生成文檔
API 的描述中,也支持 Markdown,官方的接口說明文檔:Intro to API documentation。
因此,能夠很方便的添加有條理的接口描述,尤爲是參數解釋了:
Postman給Edit編輯
4.3.1 描述支持 markdown 語法
Postman支持Markdown寫描述
而對於要解釋的參數,能夠經過以前的Param -> Bulk Edit的內容:
Postman批量更新參數
拷貝過來,再繼續去編輯:
Postman編輯Markdown描述內容
以及添加更多解釋信息:
Postman添加更多的Markdown內容
點擊 Update 後,便可保存。
4.3.2 發佈接口並生成 markdown 的描述文件
去發佈後:
Postman去Publish Docs
對應的效果:有道翻譯
Postman發佈後Markdown效果
Postman發佈後Markdown中代碼效果
4.4 Response 深刻
4.4.1 Response 數據顯示模式
Postman 對於返回的 Response 數據,支持三種顯示模式。
Postman的Response的Pretty模式
點擊Raw,能夠查看到返回的沒有格式化以前的原始數據:
Postman的Response的Raw模式
以及 Preview,是對應 Raw 原始格式的預覽模式:
Postman的Response的Preview模式
Preview 這種模式的顯示效果,好像是對於返回的是 html 頁面這類,才比較有效果。
4.4.2 Response 的 Cookies
不少時候普通的 API 調用,卻是沒有 Cookie 的:
Postman的響應中無Cookie
4.4.3 Response 的 Headers 頭信息
舉例,此處返回的是有 Headers 頭信息的:
Postman的響應中的Headers
能夠從中看到服務器是 Nginx 的。
4.5 保存多個 Example
以前想要實現,讓導出的 API 文檔中能看到接口返回的 Response 數據。後來發現是Example這個功能去實現此效果的。
4.5.1 如何添加 Example
Postman的接口點擊Add Example
繼續點擊Save Example:
Postman的接口點擊Save Example
保存後,就能看到Example(1)了:
Postman已保存的Example(1)
4.5.2 單個 Example 在導出的 API 文檔中的效果
而後再去導出文檔,導出文檔中的確能看到返回數據的例子:
Postman導出API文檔中帶Example
4.5.3 多個 Example 在導出的 API 文檔中的效果
Postman中多個Example在API文檔中效果1
Postman中多個Example在API文檔中效果2
4.6 其餘好用的功能及工具
4.6.1 分組 Collection
在剛開始一個項目時,爲了後續便於組織和管理,把同屬該項目的多個 API,放在一組裏
因此要先去新建一個 Collection: New -> Collection
Postman新建分組Colection
使用了段時間後,建了多個分組的效果:
Postman中的多個分組效果
單個分組展開後的效果:
Postman分組展開的效果
4.6.2 歷史記錄 History
Postman 支持 history 歷史記錄,顯示出最近使用過的 API:
Postman的History顯示歷史記錄
4.6.3 用環境變量實現多服務器版本
4.6.3.1 現存問題
在測試 API 期間,每每存在多種環境,對應 IP 地址(或域名也不一樣)
好比:
Prod: http://116.62.25.57/ucows
用於開發完成發佈到生產環境
Dev: http://123.206.191.125/ucows
用於開發期間的線上的 Development 的測試環境
LocalTest: http://192.168.0.140:80/ucows
用於開發期間配合後臺開發人員的本地局域網內的本地環境,用於聯合調試 API 接口
而在測試 API 期間,每每須要手動去修改 API 的地址:
Postman修改APi接口中服務器地址
效率比較低,且地址更換後以前地址就無法保留了。
另外,且根據不一樣 IP 地址(或者域名)也不容易識別是哪套環境。
4.6.2 Postman 支持用 Environment 環境變量去實現多服務器版本
後來發現 Postman 中,有 Environment 和 Global Variable,用於解決這個問題,實現不一樣環境的管理:
Postman中Environment和Globals
很明顯,就能夠用來實現不用手動修改 url 中的服務器地址,從而動態的實現,支持不一樣服務器環境:
Production 生產環境
Development 開發環境
Local 本地局域網環境
4.6.2.1 如何使用 Enviroment 實現多服務器版本
Postman中點擊的Add
或者:
Postman中點擊設置Manage Enviroments
Postman中Manage Enviroments的Add
Environments are a group of variables & values, that allow you to quickly switch the context for your requests and collections.
Learn more about environments
You can declare a variable in an environment and give it a starting value, then use it in a request by putting the variable name within curly-braces. Create an environment to get started.
輸入 Key 和 value:
Postman中Enviroment輸入key和value
點擊 Add 後:
Postman保存Enviroment
[info] 環境變量可使用的地方
URL
URL params
Header values
form-data/url-encoded values
Raw body content
Helper fields
寫 test 測試腳本中
經過 postman 的接口,獲取或設置環境變量的值。
此處把以前的在 url 中的 IP 地址(或域名)換成環境變量:
Postman把IP換成環境變量
鼠標移動到環境變量上,能夠動態顯示出具體的值:
Postman環境變量鼠標動態提示
再去添加另一個開發環境:
Postman添加Dev環境變量
則可添加完 2 個環境變量,表示兩個服務器地址,兩個版本:
Postman已添加2個環境變量
而後就能夠切換不一樣服務器環境了:
Postman切換不一樣服務器環境
能夠看到,一樣的變量 server_address,在切換後對應 IP 地址就變成但願的開發環境的 IP 了:
Postman切換到Dev的IP地址
4.6.2.2 Postman 導出 API 文檔中多個環境變量的效果
順帶也去看看,導出爲 API 文檔後,帶了這種 Environment 的變量的接口,文檔長什麼樣子:
發現是在發佈以前,須要選擇對應的環境的:
Postman發佈前要選擇環境
Postman選擇某個環境
Postman已選擇了某個環境
發佈後的文檔,能夠看到所選環境和對應服務器的 IP 的:
Postman發佈後看到所選環境的IP
固然發佈文檔後,也能夠實時切換環境:
Postman發佈後能夠切換環境
Postman切換到某個環境看到IP
4.6.2.3 環境變量的好處
當更換服務器時,直接修改變量的 IP 地址:
Postman環境變量要更換IP地址
Postman環境變量更換爲新IP
便可實時更新,當鼠標移動到變量上便可看到效果:
Postman鼠標移動到環境變量顯示新IP
4.6.3 代碼生成工具
4.6.3.1 查看當前請求的 HTTP 原始內容
對於當前的請求,還能夠經過點擊 Code
Postman中點擊Code
去查看對應的符合 HTTP 協議的原始的內容:
Postman查看請求的Http的原始內容
4.6.3.2 各類語言的示例代碼Code Generation Tools
好比:
Postman把請求生成Swift代碼
Postman把請求生成Java代碼
Postman把請求生成其餘各類語言的代碼
目前支持的語言有:
HTTP
C (LibCurl)
cURL
C#(RestSharp)
Go
Java
OK HTTP
Unirest
Javascript
NodeJS
Objective-C(NSURL)
OCaml(Cohttp)
PHP
Python
Ruby(NET::Http)
Shell
Swift(NSURL)
代碼生成工具的好處是:在寫調用此 API 的代碼時,就能夠參考對應代碼,甚至拷貝粘貼對應代碼,便可。
4.6.4 測試接口
選中某個分組後,點擊 Runner
Postman中點擊Runner
選中某個分組後點擊 Run
Postman中點擊Run去測試
便可看到測試結果:
Postman中測試API的結果
關於此功能的介紹可參考Postman 官網(https://www.getpostman.com/postman)的git 圖(https://www.getpostman.com/img/v2/postman/gifs/collection-runner.gif)
4.6.5 MockServer
直接參考官網。
4.7 功能界面
4.7.1 多 Tab 分頁
Postman 支持多 tab 頁,於此對比以前有些 API 調試工具就不支持多 Tab 頁,好比Advanced Rest Client
多 tab 的好處:
方便在一個 tab 中測試,獲得結果後,複製粘貼到另外的 tab 中,繼續測試其它接口
好比此處 tab1 中,測試了獲取驗證碼接口後,拷貝手機號和驗證碼,粘貼到 tab2 中,繼續測試註冊的接口
Postman拷貝Tab1中驗證碼
Postman粘貼驗證碼到Tab2
4.7.2 界面查看模式
Postman 的默認的 Request 和 Response 是上下佈局:
Postman默認是上下佈局
此處點擊右下角的Two pane view,就變成左右的了:
Postman換成左右佈局
[info] 左右佈局的用途
對於數據量很大,又想要同時看到請求和返回的數據的時候,應該比較有用。
4.7.3 多顏色主題
Posman 支持兩種主題:
當前是深色主題,效果很不錯:
Postman的設置深色主題
Postman的深色主題的效果
能夠切換到 淺色主題:
Postman切換淺色主題
Postman淺色主題效果
4.8 API 文檔生成
在服務端後臺的開發人員測試好了接口後,打算把接口的各類信息發給使用此 API 的前端的移動端人員時,每每會遇到:
要麼是用複製粘貼 -> 格式不友好 要麼是用 Postman 中截圖 -> 方便看,可是不方便得到 API 接口和字段等文字內容 要麼是用 Postman 中導出爲 JSON -> json 文件中信息太繁雜,不利於找到所須要的信息 要麼是用文檔,好比去編寫 Markdown 文檔 -> 但後續 API 的變動須要實時同步修改文檔,也會很麻煩 這都會致使別人查看和使用 API 時很不方便。
-> 對此,Postman 提供了發佈 API
預覽和發佈 API 文檔 下面介紹 Postman 中如何預覽和發佈 API 文檔。
4.8.1 簡要概述步驟
Collection
鼠標移動到某個 Collection,點擊 三個點
Publish Docs
Publish
獲得 Public URL
別人打開這個 Public URL,便可查看 API 文檔
4.8.2 預覽 API 文檔
點擊分組右邊的大於號>
Postman的分組右邊的>
若是隻是預覽,好比後臺開發員本身查看 API 文檔的話,能夠選擇:View in web
Postman的分組的View in web
等價於點擊Publish Docs去發佈:
Postman的分組點擊Publish Docs
View in Web 後,有 Publish 的選項(見後面的截圖)
View in Web 後,會打開預覽頁面:
好比:
奶牛雲
https://documenter.getpostman.com/collection/view/669382-42273840-6237-dbae-5455-26b16f45e2b9
Postman的API文檔預覽-1
Postman的API文檔預覽-2
而右邊的示例代碼,也能夠從默認的 cURL 換成其餘的:
示例代碼從cURL換成Python
API文檔中Python示例代碼
4.8.3 發佈 API 文檔
若是想要讓其餘人能看到這個文檔,則點擊 Publish:
API文檔中點擊Publish去發佈
而後會打開相似於這樣的地址:
Postman Documenter
Postman確認發佈分組的API文檔
點擊 Publish 後,能夠生成對應的公開的網頁地址:
Postman已發佈文檔獲得公開連接
打開 API 接口文檔地址:
https://documenter.getpostman.com/view/669382/collection/77fd4RM
便可看到(和前面預覽同樣效果的 API 文檔了):
Postman已發佈的API文檔效果
如此,別人便可查看對應的 API 接口文檔。
4.9 已發佈的 API 文檔支持自動更新
後續若是本身的 API 接口修改後:
好比:
Postman去Edit編輯API
Postman的API更新編輯Edit Request
(後來發現,不用再去進入此預覽和發佈的流程,去更新文檔,而是 Postman 自動支持)
別人去刷新該文檔的頁面:
https://documenter.getpostman.com/view/669382/collection/77fd4RM
便可看到更新後的內容:
Postman自動更新了已發佈的API文檔
主要參考:
**Github: **api_tool_postman(https://github.com/crifan/api_tool_postman)
**Manage **environments(https://www.getpostman.com/docs/postman/environments_and_globals/manage_environments)
postman-變量/環境/過濾等 - 簡書(https://www.jianshu.com/p/5d7954b6d218)
Postman 使用手冊 3——環境變量 - 簡書(https://www.jianshu.com/p/bffbc79b43f6)
postman 使用之四:切換環境和設置讀取變量 - 喬葉葉 - 博客園(http://www.cnblogs.com/qiaoyeye/p/5524750.html)
本文做者:老馬
原文發佈於博客園
原文連接:
如下是咱們的社區介紹,歡迎各類合做、交流、學習:)