你應該學會的Postman用法(2)-自動化測試

IT米粉發表於2018-06-14

前言

之前的一篇文章《你應該學會的Postman用法》,主要介紹了postman的一些高階的用法,便於日常開發和除錯使用,本文的基礎是對postman的基本使用以及一些高階用法有一定的瞭解,如對此不太瞭解的同學,建議移步:《你應該學會的Postman用法》瞭解。

背景

隨著公司微服務體系服務越來越多,業務增長越來越迅速,版本迭代越來越快,而且對系統的可用性要求越來越高,傳統的手工釋出系統的方式已經完全無法滿足日常運維的需求了,自動化構建釋出的需求越來越強烈,但是自動化釋出有個基礎的環境,自動化測試,鑑於團隊規模不大,測試人員的能力參差不齊,自動化測試我們選擇了以開發測試一起搭建的方式,通過輕量級的工具postman進行自動化測試。

測試檔案共享

postman可以將測試的介面進行collections分組,分組後的一組介面可以進行匯出,如圖:

你應該學會的Postman用法(2)-自動化測試

匯出後的檔案,可以作為測試指令碼共享,使用的人員只要匯入,即可使用。
你應該學會的Postman用法(2)-自動化測試

這樣,就可以在不同人員間,共享一個測試的檔案。當然,如果能升級到高階版,可以直接通過不同的賬號在雲端共享測試檔案,更加方便。

指令碼測試

一直以來,我們都是介紹通過postman 的UI進行測試的,但是,實際做自動化測試的時候,我們更多是使用指令碼,特別是在生產環境,通過指令碼進行測試,就是必然了。postman為我提供了一個測試的工具——newman,基於node.js的一個指令碼測試工具。

安裝

先安裝node.js,這裡不贅述了,開發人員必備工具。
在安裝newman:

npm install -g newman
複製程式碼

初步使用

記得前面介紹的,我們匯出的測試檔案吧,那個檔案除了分享給別人,也是我們用來測試的檔案。

newman run 11.json
複製程式碼

11.json 就是我剛才匯出的檔案,使用指令碼檔案型別必須是json。 這時候看看我們測試發生了什麼?

你應該學會的Postman用法(2)-自動化測試
貌似,失敗了。提示我們迴圈,執行了一次,6個請求,但是全面部失敗了。看到錯誤的資訊發現URI不正確,因為我用到postman了環境變數,但是匯出的結果裡沒有環境變數。這時候我們需要調整一下執行的指令碼。

newman run 11.json -e url.json
複製程式碼

url.json 實際是我們需要當前執行的環境變數,檔案從就是如圖方式匯出的:

你應該學會的Postman用法(2)-自動化測試

你應該學會的Postman用法(2)-自動化測試

匯出後,我們也是將檔案命名為json型別的檔案。這樣我看下我們執行的結果。
你應該學會的Postman用法(2)-自動化測試

全部執行成功了。就是這麼簡單。一個命令配上我們開發時候就需要用到的測試檔案,就可以了,無需另外的測試指令碼,用一個shell指令碼即可完成結果的測試。

引數詳解

newman是個非常輕量級的命令,引數很少,這裡我們列出常用的幾個引數:

引數 詳細說明
-e 環境變數(environment)檔案路徑或者url,json檔案
-g 全部配置(Global)檔案路徑或url,json檔案
-d 測試資料檔案路徑,cvs檔案
-n 迴圈測試次數
--delay-request 延遲執行時間
--timeout-request 請求超時時間
--bail 其中一個介面失敗後,是否繼續執行

詳細引數,可以參考:【這裡】

總結

這樣一個非常輕量級的自動化測試指令碼就做好了,當然,這是我們做自動化構建釋出一個前提,postman的優勢是將日常開發中需要用的測試工具做成通過shell就能執行的工具,比專門花時間了編寫soapui這樣的指令碼來說,更加輕量級,更加友好,當整合了shell的相關功能後,對於開發人員來說,可擴充套件性就變得非常容易了,後面的文章我將會介紹如何結合postman,再整合其他構建釋出工具,來對我們的微服務進行釋出,真正做到了自動化的釋出、測試,而且能做到不停機、不影響使用者使用情況下完成系統的釋出。

相關文章