前言
之前的一篇文章《你應該學會的Postman用法》,主要介紹了postman的一些高階的用法,便於日常開發和除錯使用,本文的基礎是對postman的基本使用以及一些高階用法有一定的瞭解,如對此不太瞭解的同學,建議移步:《你應該學會的Postman用法》瞭解。
背景
隨著公司微服務體系服務越來越多,業務增長越來越迅速,版本迭代越來越快,而且對系統的可用性要求越來越高,傳統的手工釋出系統的方式已經完全無法滿足日常運維的需求了,自動化構建釋出的需求越來越強烈,但是自動化釋出有個基礎的環境,自動化測試,鑑於團隊規模不大,測試人員的能力參差不齊,自動化測試我們選擇了以開發測試一起搭建的方式,通過輕量級的工具postman進行自動化測試。
測試檔案共享
postman可以將測試的介面進行collections分組,分組後的一組介面可以進行匯出,如圖:
匯出後的檔案,可以作為測試指令碼共享,使用的人員只要匯入,即可使用。
這樣,就可以在不同人員間,共享一個測試的檔案。當然,如果能升級到高階版,可以直接通過不同的賬號在雲端共享測試檔案,更加方便。
指令碼測試
一直以來,我們都是介紹通過postman 的UI進行測試的,但是,實際做自動化測試的時候,我們更多是使用指令碼,特別是在生產環境,通過指令碼進行測試,就是必然了。postman為我提供了一個測試的工具——newman,基於node.js的一個指令碼測試工具。
安裝
先安裝node.js,這裡不贅述了,開發人員必備工具。
在安裝newman:
npm install -g newman
複製程式碼
初步使用
記得前面介紹的,我們匯出的測試檔案吧,那個檔案除了分享給別人,也是我們用來測試的檔案。
newman run 11.json
複製程式碼
11.json 就是我剛才匯出的檔案,使用指令碼檔案型別必須是json。 這時候看看我們測試發生了什麼?
貌似,失敗了。提示我們迴圈,執行了一次,6個請求,但是全面部失敗了。看到錯誤的資訊發現URI不正確,因為我用到postman了環境變數,但是匯出的結果裡沒有環境變數。這時候我們需要調整一下執行的指令碼。newman run 11.json -e url.json
複製程式碼
url.json 實際是我們需要當前執行的環境變數,檔案從就是如圖方式匯出的:
匯出後,我們也是將檔案命名為json型別的檔案。這樣我看下我們執行的結果。
全部執行成功了。就是這麼簡單。一個命令配上我們開發時候就需要用到的測試檔案,就可以了,無需另外的測試指令碼,用一個shell指令碼即可完成結果的測試。
引數詳解
newman是個非常輕量級的命令,引數很少,這裡我們列出常用的幾個引數:
引數 | 詳細說明 |
---|---|
-e | 環境變數(environment)檔案路徑或者url,json檔案 |
-g | 全部配置(Global)檔案路徑或url,json檔案 |
-d | 測試資料檔案路徑,cvs檔案 |
-n | 迴圈測試次數 |
--delay-request | 延遲執行時間 |
--timeout-request | 請求超時時間 |
--bail | 其中一個介面失敗後,是否繼續執行 |
詳細引數,可以參考:【這裡】
總結
這樣一個非常輕量級的自動化測試指令碼就做好了,當然,這是我們做自動化構建釋出一個前提,postman的優勢是將日常開發中需要用的測試工具做成通過shell就能執行的工具,比專門花時間了編寫soapui這樣的指令碼來說,更加輕量級,更加友好,當整合了shell的相關功能後,對於開發人員來說,可擴充套件性就變得非常容易了,後面的文章我將會介紹如何結合postman,再整合其他構建釋出工具,來對我們的微服務進行釋出,真正做到了自動化的釋出、測試,而且能做到不停機、不影響使用者使用情況下完成系統的釋出。