postman全方位講解(有空看下)

Postman 接口測試神器

Postman 是一個接口測試和 http 請求的神器,很是好用。html

官方 github 地址: https://github.com/postmanlabs前端

Postman 的優勢:java

  • 支持各類的請求類型: get、post、put、patch、delete 等
  • 支持在線存儲數據,經過帳號就能夠進行遷移數據
  • 很方便的支持請求 header 和請求參數的設置
  • 支持不一樣的認證機制,包括 Basic Auth,Digest Auth,OAuth 1.0,OAuth 2.0 等
  • 響應數據是自動按照語法格式高亮的,包括 HTML,JSON 和 XML

如下內容主要參考: Github: api_tool_postmanpython

安裝

Postman 能夠單獨做爲一個應用安裝,也能夠做爲 chrome 的一個插件安裝。git

下面主要介紹下載安裝獨立版本app 軟件的 Postman 的過程:chrome

去主頁Postman 官網找到:Postman | Appsjson

下載Postman的APP

去下載本身平臺的版本:swift

  • Mac
  • Windows(x86/x64)
  • Linux(x86/x64) 便可。

快速入門,整體使用方略

安裝成功後,打開軟件。

新建接口

對應的Request:New -> Request

Postman新建Request

或,在右邊的 Tab 頁面中點擊加號+:

Postman在Tab頁新建Request

便可看到新建的 Tab 頁:

Postman新建了的Tab頁的Request

設置 HTTP 請求的方法

設置 HTTP 的 Method 方法和輸入 api 的地址

Postman設置Method和輸入API地址

設置相關請求頭信息

Postman設置Header頭的key

Postman設置Header頭的value

設置相關 GET 或 POST 等的參數

Postman設置POST的Body的JSON

發送請求

都填寫好以後,點擊 Send 去發送請求 Request:

Postman點擊發送請求

查看響應 Response的信息

Postman返回響應

而後能夠重複上述修改 Request 的參數,點擊 Send 去發送請求的過程,以便調試到 API 接口正常工做爲止。

保存接口配置

待整個接口都調試完畢後,記得點擊 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

Request 的多參數操做詳解

自動解析多個參數 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中展開的多個參數

如此就能夠很方便的修改,增刪對應的參數了。

臨時禁用參數

且還支持,在不刪除某參數的狀況下,若是想要暫時不傳參數,能夠方便的經過不勾選的方式去實現:

Postman中不勾選個別參數

批量編輯 GET 的多個參數

固然,若是想要批量的編輯參數,能夠點擊右上角的Bulk Edit,去實現批量編輯。

Postman批量編輯GET參數

接口描述與自動生成文檔

API 的描述中,也支持 Markdown,官方的接口說明文檔:Intro to API documentation

因此,能夠很方便的添加有條理的接口描述,尤爲是參數解釋了:

Postman給Edit編輯

描述支持 markdown 語法

Postman支持Markdown寫描述

而對於要解釋的參數,能夠經過以前的Param -> Bulk Edit的內容:

Postman批量更新參數

拷貝過來,再繼續去編輯:

Postman編輯Markdown描述內容

以及添加更多解釋信息:

Postman添加更多的Markdown內容

點擊 Update 後,便可保存。

發佈接口並生成 markdown 的描述文件

去發佈後:

Postman去Publish Docs

對應的效果:有道翻譯

Postman發佈後Markdown效果

Postman發佈後Markdown中代碼效果

Response 深刻

Response 數據顯示模式

Postman 對於返回的 Response 數據,支持三種顯示模式。

  • 默認格式化後的 Pretty 模式

Postman的Response的Pretty模式

  • Raw 原始模式

點擊Raw,能夠查看到返回的沒有格式化以前的原始數據:

Postman的Response的Raw模式

  • Preview 預覽模式

以及 Preview,是對應 Raw 原始格式的預覽模式:

Postman的Response的Preview模式

Preview 這種模式的顯示效果,好像是對於返回的是 html 頁面這類,才比較有效果。

Response 的 Cookies

不少時候普通的 API 調用,卻是沒有 Cookie 的:

Postman的響應中無Cookie

Response 的 Headers 頭信息

舉例,此處返回的是有 Headers 頭信息的:

Postman的響應中的Headers

能夠從中看到服務器是 Nginx 的。

保存多個 Example

以前想要實現,讓導出的 API 文檔中能看到接口返回的 Response 數據。後來發現是Example這個功能去實現此效果的。

如何添加 Example

Postman的接口點擊Add Example

繼續點擊Save Example:

Postman的接口點擊Save Example

保存後,就能看到Example(1)了:

Postman已保存的Example(1)

單個 Example 在導出的 API 文檔中的效果

而後再去導出文檔,導出文檔中的確能看到返回數據的例子: Postman導出API文檔中帶Example

多個 Example 在導出的 API 文檔中的效果

Postman中多個Example在API文檔中效果1

Postman中多個Example在API文檔中效果2

其餘好用的功能及工具

分組 Collection

在剛開始一個項目時,爲了後續便於組織和管理,把同屬該項目的多個 API,放在一組裏

因此要先去新建一個 Collection: New -> Collection

Postman新建分組Colection

使用了段時間後,建了多個分組的效果:

Postman中的多個分組效果

單個分組展開後的效果:

Postman分組展開的效果

歷史記錄 History

Postman 支持 history 歷史記錄,顯示出最近使用過的 API: Postman的History顯示歷史記錄

用環境變量實現多服務器版本

現存問題

在測試 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 地址(或者域名)也不容易識別是哪套環境。

Postman 支持用 Environment 環境變量去實現多服務器版本

後來發現 Postman 中,有 Environment 和 Global Variable,用於解決這個問題,實現不一樣環境的管理:

Postman中Environment和Globals

很明顯,就能夠用來實現不用手動修改 url 中的服務器地址,從而動態的實現,支持不一樣服務器環境:

  • Production 生產環境
  • Development 開發環境
  • Local 本地局域網環境

如何使用 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地址

Postman 導出 API 文檔中多個環境變量的效果

順帶也去看看,導出爲 API 文檔後,帶了這種 Environment 的變量的接口,文檔長什麼樣子:

發現是在發佈以前,須要選擇對應的環境的:

Postman發佈前要選擇環境

Postman選擇某個環境

Postman已選擇了某個環境

發佈後的文檔,能夠看到所選環境和對應服務器的 IP 的:

Postman發佈後看到所選環境的IP

固然發佈文檔後,也能夠實時切換環境:

Postman發佈後能夠切換環境

Postman切換到某個環境看到IP

環境變量的好處

當更換服務器時,直接修改變量的 IP 地址:

Postman環境變量要更換IP地址

Postman環境變量更換爲新IP

便可實時更新,當鼠標移動到變量上便可看到效果:

Postman鼠標移動到環境變量顯示新IP

代碼生成工具

查看當前請求的 HTTP 原始內容

對於當前的請求,還能夠經過點擊 Code

Postman中點擊Code

去查看對應的符合 HTTP 協議的原始的內容:

Postman查看請求的Http的原始內容

各類語言的示例代碼Code Generation Tools

好比:

  • Swift 語言

Postman把請求生成Swift代碼

  • Java 語言

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 的代碼時,就能夠參考對應代碼,甚至拷貝粘貼對應代碼,便可。

測試接口

選中某個分組後,點擊 Runner

Postman中點擊Runner

選中某個分組後點擊 Run

Postman中點擊Run去測試

便可看到測試結果: Postman中測試API的結果

關於此功能的介紹可參考Postman 官網git 圖

MockServer

直接參考官網。

功能界面

多 Tab 分頁

Postman 支持多 tab 頁,於此對比以前有些 API 調試工具就不支持多 Tab 頁,好比Advanced Rest Client

多 tab 的好處:

方便在一個 tab 中測試,獲得結果後,複製粘貼到另外的 tab 中,繼續測試其它接口

好比此處 tab1 中,測試了獲取驗證碼接口後,拷貝手機號和驗證碼,粘貼到 tab2 中,繼續測試註冊的接口

Postman拷貝Tab1中驗證碼

Postman粘貼驗證碼到Tab2

界面查看模式

Postman 的默認的 Request 和 Response 是上下佈局:

Postman默認是上下佈局

此處點擊右下角的Two pane view,就變成左右的了:

Postman換成左右佈局

[info] 左右佈局的用途

對於數據量很大,又想要同時看到請求和返回的數據的時候,應該比較有用。

多顏色主題

Posman 支持兩種主題:

  • 深色主題

當前是深色主題,效果很不錯:

Postman的設置深色主題

Postman的深色主題的效果

  • 淺色主題

能夠切換到 淺色主題:

Postman切換淺色主題

Postman淺色主題效果

API 文檔生成

在服務端後臺的開發人員測試好了接口後,打算把接口的各類信息發給使用此 API 的前端的移動端人員時,每每會遇到:

要麼是用複製粘貼 -> 格式不友好 要麼是用 Postman 中截圖 -> 方便看,可是不方便得到 API 接口和字段等文字內容 要麼是用 Postman 中導出爲 JSON -> json 文件中信息太繁雜,不利於找到所須要的信息 要麼是用文檔,好比去編寫 Markdown 文檔 -> 但後續 API 的變動須要實時同步修改文檔,也會很麻煩 這都會致使別人查看和使用 API 時很不方便。

-> 對此,Postman 提供了發佈 API

預覽和發佈 API 文檔 下面介紹 Postman 中如何預覽和發佈 API 文檔。

簡要概述步驟

  1. Collection
  2. 鼠標移動到某個 Collection,點擊 三個點
  3. Publish Docs
  4. Publish
  5. 獲得 Public URL
  6. 別人打開這個 Public URL,便可查看 API 文檔

預覽 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示例代碼

發佈 API 文檔

若是想要讓其餘人能看到這個文檔,則點擊 Publish:

API文檔中點擊Publish去發佈

而後會打開相似於這樣的地址:

Postman Documenter

https://documenter.getpostman.com/collection/publish?meta=Y29sbGVjdGlvbl9pZD00MjI3Mzg0MC02MjM3LWRiYWUtNTQ1NS0yNmIxNmY0NWUyYjkmb3duZXI9NjY5MzgyJmNvbGxlY3Rpb25fbmFtZT0lRTUlQTUlQjYlRTclODklOUIlRTQlQkElOTE=

Postman確認發佈分組的API文檔

點擊 Publish 後,能夠生成對應的公開的網頁地址:

Postman已發佈文檔獲得公開連接

打開 API 接口文檔地址:

https://documenter.getpostman.com/view/669382/collection/77fd4RM

便可看到(和前面預覽同樣效果的 API 文檔了):

Postman已發佈的API文檔效果

如此,別人便可查看對應的 API 接口文檔。

已發佈的 API 文檔支持自動更新

後續若是本身的 API 接口修改後:

好比:

Postman去Edit編輯API

Postman的API更新編輯Edit Request

(後來發現,不用再去進入此預覽和發佈的流程,去更新文檔,而是 Postman 自動支持)

別人去刷新該文檔的頁面:

https://documenter.getpostman.com/view/669382/collection/77fd4RM

便可看到更新後的內容:

Postman自動更新了已發佈的API文檔

來源  https://www.jianshu.com/p/5a49d1deaf69

參考資料

相關文章
相關標籤/搜索