postman


老舊的模擬請求方式

在開發APP接口的過程中,一般接口寫完之后,后端開發都會模擬調用一下請求。在用Postman之前,對於一般的get請求我基本都會用瀏覽器來簡單模擬。而對於post請求,我一般習慣寫代碼來調用。可以用Java來模擬,當然用Python會更簡潔。我們來看看這種方法存在哪些弊端?

  1. 不便於管理請求,通常都是用到一個寫一個,如果后續還要用的話,最多只能依賴瀏覽器的歷史記錄。
  2. 對於開發、測試、生產環境來說,請求的域名參數可能都是不同的,這對於我們請求的維護又帶來了極大的困難。
  3. 通過瀏覽器或自己調用獲取的返回結果都是未經過格式化的文本,還需要借助bejson等平台來提高數據的可讀性

用Postman模擬請求

然而今天需要推薦一款模擬請求的利器——Postman,看看它是如何優雅地解決上面的這三個問題的。

使用Collections管理請求

Postman中,請求可以保存,也就類似於文件。而Collection類似文件夾,可以把同一個項目的請求放在一個Collection里方便管理和分享,Collection里面也可以再建文件夾。

這里寫圖片描述


環境變量

比如我們請求的域名,開發、測試、生產環境肯定都不一樣。包括一些請求參數,比如測試環境的用戶id和線上環境的用戶id,肯定都是有差異的。這個就類似我們在maven中通過配置profile打不同環境的發布包。當然Postman里還提供了Globals也就是所謂的全局變量,與環境無關。

這里寫圖片描述


請求結果格式化

這里寫圖片描述


再誇一點吧

Postman在模擬請求方面強大且方便到令人發指,這里再說幾句吧: 
可以模擬各種Http方法,Post、Get、Put、Delete等 
可以添加各種Headers,不過一些Headers受到Chrome和XMLHttpRequest規范的限制,被屏蔽了,具體有如下:

  • Accept-Charset
  • Accept-Encoding
  • Access-Control-Request-Headers
  • Access-Control-Request-Method
  • Connection
  • Content-Length
  • Cookie
  • Cookie 2
  • Content-Transfer-Encoding
  • Date
  • Expect
  • Host
  • Keep-Alive
  • Origin
  • Referer
  • TE
  • Trailer
  • Transfer-Encoding
  • Upgrade
  • User-Agent
  • Via

好消息是,從Postman v0.9.6版本開始,我們可以使用攔截器來發送這些受限的Headers,也就是需要安裝postman interceptor插件

安裝了postman interceptor不僅可以發送Cookie,並且可以使用瀏覽器的Cookie。這樣一來,我們只要在Chrome里登陸了,那么就可以獲取各種只能登陸后才能訪問的請求結果了。這絕對是個實用的功能。

安裝了postman interceptor,還有一個好處!那就是可以攔截Chrome的請求,通過Chrome的請求可以自動被抓取到Postman中。只需要在Chrome中打開postman interceptor的攔截功能,並且配置好攔截規則,默認是攔截所有請求,你也可以根據自己的規則去攔截特定的請求。有了它就相當於替代了我們去錄制請求,然后我們就可以做點什么。。。

Postman還能做什么

Postman除了是一個牛逼的模擬請求的工具,它還包含了很強大的接口測試功能:

測試主要包括三部分,在發起請求之前運行的Pre-request,在收到響應之后運行的Test,和一次運行所有請求的Collection Runner

Pre-request

這里寫圖片描述

Pre-requestTest用的語言都是JavaScript,常用的功能都可以通過右邊的Code Snippets實現,點擊就可以插入到代碼區域。 
可以看到Pre-request里常用的功能就兩種,環境變量的設置清除和全局變量的設置清除

Test

這里寫圖片描述

Pre-request相比,TestSnippets就豐富多了,例如檢查狀態碼、檢查響應串、驗證JSON、檢查header、限制響應時間。 
如果需要將服務器響應的數據保存下來,用在后面的請求里,也需要在這一步做。

Collection Runner

這里寫圖片描述

當編寫了很多測試之后,就可以使用Collection Runner來自動運行整個Collection了,入口就在主界面最上面一行的Runner。選好CollectionEnvironment,如果有需要還可以載入JSONCSV作為數據源。點擊Start Test Run,就可以看到結果了。

寫在后面

這篇文章只是簡單的介紹了Postman的一些優勢,我只是作為一個體驗者把我自己覺得好的地方推薦給大家,當然Postman可能還有好多強大的功能我沒有用到的。后面的文章我將會分享一個實際的例子,來展示我如何用Postman對最近開發的一個功能模塊的所有接口進行自動化測試。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM