1. 程式人生 > >Postman 高階用法指南

Postman 高階用法指南

Navigating PostmanNavigating Postman

作為一個跨平臺的API測試工具,Postman有Win/Mac/Linux客戶端,還有瀏覽器擴充套件程式。不過官方建議使用客戶端,主要有以下優點:

  • 自帶cookie支援:請求可以使用同一域名下的cookie;
  • 內建代理支援:可以用來轉發請求,分析請求流量;
  • 自定義請求頭:不必受限於Chrome中對於請求頭的限制;
  • 內建控制檯:在控制檯可以檢視請求的詳細資訊

簡單來說,postman 做的事情就是模擬瀏覽器傳送請求,接受響應。使用Postman可以模擬任何瀏覽器發出的請求,可以自由地構造請求地址,請求方法,請求內容,Cookies等。Postman的響應內容包括完整的響應頭,響應時間,響應大小,cookie等內容。

此外,postman還提供如下方便功能:

  • Debugging and logs:可以在控制檯對postman的請求進行除錯,特別是如果有pre-request或者test script時,使用控制檯可以方便debug。原生postman可以通過CMD/CTRL + ALT + C開啟控制檯。
  • Generate code snippets:將當前請求匯出為各種版本的請求程式碼,比如python,js,curl等,方便用命令列測試;
  • Proxy:如果本機不能直接訪問服務端,可以在Settings-Proxy-Using custom/system proxy設定代理;
  • Capturing HTTP requests
    :有時候用手機訪問服務端時,我們可能需要藉助fiddler來檢視HTTP請求。postman也可以做相同的工作,只需要將postman作為代理轉發HTTP請求即可。
  • Certificates: 如果服務端要驗證客戶端證書,可以在Settings-Certificates-Add Certificate配置證書;

Environments and globals

我們在構造API請求時,經常會在多個地方使用相同的值,比如相同的請求域名,一些固定的引數值。這時候如果使用變數來儲存相應的值,然後在需要使用該值的地方用變數來代替會帶來不少好處,比如要改變這些值,只用在變數的定義地方作出改動即可。

Quick Look for variablesQuick Look for variables

Postman定義了4類變數,極大地方便了構造請求以及對結果進行測試:

  • Global: 全域性變數,postman中所有請求都可以訪問或者修改;
  • Environment: 構造請求時可以選擇使用某個Environment,這樣就可以訪問或者修改該Environment下的所有變數;
  • Local: 指令碼中定義的變數,只對指令碼的當前作用域有用;
  • Data: 只有在使用Collection Runner的時候,可以通過匯入 Data Files 來構造當前測試集中用到的資料。

就像程式中的變數一樣,這裡的變數也是有優先順序,如果在Environment中有和Global重名的變數,會優先使用Environment中變數。上面4個變數的優先順序由上到下依次減弱。

在postman中使用變數有著很多意想不到的好處,比如:

  1. Collection Runner中通過Data file來構造不同的測試資料,方便快速進行大量不同請求資料的測試;
  2. 可以在不同請求中傳遞值,比如在一個請求中產生流水號,將其設定為某個變數的值,下一個請求即可使用該變數值。

Scripts

Postman 內建了Node.js的執行時環境,可以執行JS指令碼。這樣就帶來了很多激動人心的好處,比如構建動態請求引數,編寫強大的測試用例等。Postman中的Scripts分為2類:

  • test script: 在獲取相應之後執行的指令碼,一般用來做測試。不過需要注意,測試指令碼執行在Sandbox環境,內建了許多JS庫支援,方便進行測試。

Request Execution FlowRequest Execution Flow

Postman的Sandbox環境十分強大,比如:

  1. 通過提供postman.setNextRequest("request_name")實現,可以很方便地在 Collection 中控制請求的執行路徑;
  2. 提供了一系列內建介面,方便對環境變數,請求或者相應內容進行訪問;
  3. 提供了 CryptoJS 庫,可以方便地進行加解密操作;
  4. 提供了 tv4 庫,可以對 Json Scheme進行測試;JSON Schema 定義瞭如何基於 JSON 格式描述 JSON 資料結構的規範,進而提供資料校驗、文件生成和介面資料互動控制等一系列能力。

Collections runs

Collections 是一系列請求的集合,postman通過collection來支援構建請求工作流,自動化測試,請求的匯入匯出,持續整合等功能。Collection 支援以下功能:

  • Sharing collections:可以將Collection中的請求匯出分享給其他人;
  • Data formats:Postman可以匯出環境變數,甚至可以將請求和環境變數等一起打包為一個Json,方便遷移所有的請求資料。

Collection的一大用處就是一次執行其中所有的請求,這就是所謂的collection run

collection runnercollection runner

在執行collection run時,有很多配置選項,主要如下:

  • Working with data files: 可以匯入一個Data File,裡面存放測試中用到的Data變數。可以存放很多不同的Data變數,這樣迭代跑多次Collection時,每次使用不同的資料;
  • Running multiple iterations: 可以配置迭代的執行Collection中的請求,對介面的穩定性進行測試。此外配合Data files,也可以對介面的正確性進行測試;
  • Building workflows:預設情況下會順序執行Collection中的請求,不過可以通過setNextRequest()來更改請求的執行流程。
  • Debugging a collection run: Collection中的請求執行後,會有視覺化的執行結果展示,可以方便進行除錯,此外,也可以通過控制檯來進行除錯。
  • Sharing a collection run: 整個Collection Run也是可以匯出,可以在其他平臺進行執行;
  • Integration with Travis CI: 可以將 newman 和 Travis CI整合,配置好持續性整合,指定自動執行測試用例的時機。

其他功能

1. 檔案上傳

圖形介面端,Collection 中的請求不支援POST檔案上傳,不過在匯出Collection後,可以在json檔案中配置檔案路徑,然後使用 newman 進行檔案上傳。詳細可以參考Postman官方部落格:Using Newman to run collections with file-post requests

不過檔案上傳時必須指定檔案路徑,不能用變數代替,也不能通過Data Files來設定不同的檔案,不是很方便。所以我給官方提了Issue,目前該功能已經納入 Feature,有望在後續版本中實現該功能。這裡就不得不讚一下Postman的社群支援了,基本上有任何問題,只要在官方Issue上提出,基本很快就會有Postman的工作人員提供支援。

(備註:本文所有圖片均來自Postman Doc)

相關推薦

Postman 高階用法指南

Navigating Postman 作為一個跨平臺的API測試工具,Postman有Win/Mac/Linux客戶端,還有瀏覽器擴充套件程式。不過官方建議使用客戶端,主要有以下優點: 自帶cookie支援:請求可以使用同一域名下的cookie;內建代理支援:可以用來轉發請求,分析請求流量;自定義請求頭

Chrome性能分析工具lightHouse用法指南

工具 頁面 頁面性能 amp con 開發 進行 http pin 本文主要講如何使用Chrome開發者工具linghtHouse進行頁面性能分析。 相關參考&內容來源: 插件下載地址:https://chrome.google.com/webstore/det

SASS用法指南

inpu .html 安裝 sta func 處理器 radi 直接 div http://www.ruanyifeng.com/blog/2012/06/sass.html 學過CSS的人都知道,它不是一種編程語言。 你可以用它開發網頁樣式,但是沒法用它編程。也就是說,C

Postman高階應用(8):檔案變成了亂碼——下載檔案

背景 在做後臺管理系統時候,涉及到匯出報表等功能,如果我們用以前的方式請求,往往會看到返回一堆亂碼,而不是我們想要的檔案。其實Postman為我們提供了檔案下載功能,同樣普通的html文字和json資料也可以返回儲存為檔案。 實戰 點發送按鈕旁邊的三角形,然後點Send a

iOS webView的高階用法之JS互動

前言:說起JS互動,很多童鞋會黯然色變,感覺很高深的樣子。大部分小夥伴只知道一種,哪一種我也說說吧。    1.在webView中將要請求的時候,攔截URL,進行重定向,然而該場景實用有限,網上資料也很多下面說說另一種互動方式。 - (BOOL)webView:(UIWe

python sorted函式高階用法

1、入門 a = [20, 5, 6, 7, 8, 1] res1 = sorted(a) # 正序排序 res2 = sorted(a, reverse=True) # 逆序排序 res3 = sorted(a, key=lambda item: -item) # 逆序排序 pr

Flask高階應用06---模型的CRUD和高階用法

一、資料對映(資料庫crud基礎操作) 注意:在遷移前首先要開啟資料庫mysql 1.建立模型==create_all() 對建立的模型資料進行遷移,這個方法只能用於首次建立,後面遷移需要用migrate(不建議用),建議用sql語句,orm實現的資料庫遷移不是最有方式 @b

嵌入式C的高階用法必須瞭解

學習嵌入式,c是必須要知道熟練的,可以說不止嵌入式的學習需要用到c,只要是關於計算機的都會用到c,c是計算機學習最為基礎的一門,c也是要經過初級到高階的,今天就來讓你詳細的瞭解一下嵌入式c的高階用法。這些都是工作學習中必備的技巧,希望對你有所幫助。 1、記憶體管理 我們需要知道——變數,其實

#define巨集的高階用法

參考:https://blog.csdn.net/xiahouzuoxin/article/details/9494503 一 、巨集的定義與撤銷 #普通巨集定義 #define PI 3.14 //編譯階段替換掉巨集 #define T1 3+4 //容易產生歧義 #defi

Android列表用法之二:實戰ListView高階用法

在我們的專案中,並不是所有列表都是簡單的使用。類似於新聞列表、QQ聊天列表等,具有圖文並排的列表,每個item都有它不同的佈局型別,都有其不同的實現方式。這類複雜的列表表現形式,在各類知名應用當中,不可或缺的存在著。今天我們就來看看,使用ListView能不能實現此類複雜佈局。 今天的例

Charles高階用法

一、網速模擬 點選選單“Proxy→ Throtte Setting”開啟網速模擬配置視窗。

問題: 檢視某個檔案的修改記錄| git log 高階用法

參考文章: git檢視某個檔案的修改歷史 5.3 Git log 高階用法 基本步驟 git log --pretty=oneline [檔名] git show [節點] git log 兩週高階用法結合在一起就能找到想要的 自定義提交的

android動畫三·ValueAnimator和ObjectAnimator的高階用法

內容 動畫 ValueAnimator的高階用法 假如:我們有一個自定義的View,在這個View當中有一個Point物件用於管理座標,然後在onDraw()方法當中就是根據這個Point物件的座標值來進行繪製的。如果可以對Point物件進行動畫操作,那麼整個自定義

Vue —— 父子通訊高階用法

async 父元件使用 :syncVal.sync="val" <template> <section class="parent"> <son :syncVal.sync="val"></son> </sectio

Xpath高階用法

    xpath速度比較快,是爬蟲在網頁定位中的較優選擇,但是很多網頁前端程式碼混亂難以定位,而學習定位也較為不易(主要是全面的教程較少),這裡列出一點程式設計過程中可能有用的東西,歡迎共同學習批評指正。 試驗環境:Python環境,lxml.etree 試驗

C# JSON格式資料高階用法

 JSON簡介 JSON(全稱為JavaScript ObjectNotation) 是一種輕量級的資料交換格式。它是基於JavaScript語法標準的一個子集。JSON採用完全獨立於語言的文字格式,可以很容易在各種網路、平臺和程式之間傳輸。JSON的語法很簡單,易於人閱讀和編寫,同時也易於機器解

Python語法基礎|高階用法|高階特性:匿名函式lambda

定義一個普通函式,起碼需要def關鍵字+函式名+函式體。而lambda可定義一個匿名函式。   >>> add = lambda x,y:x+y >>> type(add) <type 'function'>   lambd

Django表單集合Formset的高階用法

Formset(表單集)是多個表單的集合。Formset在Web開發中應用很普遍,它可以讓使用者在同一個頁面上提交多張表單,一鍵新增多個數據,比如一個頁面上新增多個使用者資訊。今天小編我就介紹下Django Formset的基礎知識,Formset的分類以及如何使用Formset。   &n

MYSQL資料庫高階用法

文章目錄 檢視 什麼是檢視 檢視檢視 使用檢視 刪除檢視 事務 什麼是事務 事務的四大特性ACID 原子性(Atomicity) 一致性(Consistency)

深入理解Vue router的部分高階用法

今天要介紹的是路由元資訊,滾動行為以及路由懶載入這幾個的使用方法。 1.路由元資訊 什麼是路由元資訊,看看官網的解釋,定義路由的時候可以配置 meta 欄位可以匹配meta欄位,那麼我們該如何使用它,一個簡單的例子,改變瀏覽器title的值。下面上程式碼。 //簡單的我就不寫了直