Postman+Newman+Git+Jenkins介面自動化測試

wuwei丶發表於2020-06-02

一、Postman

   1、建立Collection,在Collection中建立介面請求,如下圖所示。

   2、編寫介面對應的斷言Test和Pre-request Script,如下圖所示。

   3、配置介面對應的環境變數或全域性變數。

   4、匯出介面集合Collection和匯出對應介面的環境變數,匯出生成的是JSON檔案。

  如下圖所示,匯出生成的介面集合和環境變數JOSN檔案

  如大家對以上Postman的操作疑惑的,可參考之前我寫過的Postman(一)兩篇部落格。

 二、Newman

 1、簡介

  newman是Postman的命令集合執行器,可以通過它直接從命令列執行和測試Postman,以便後續在持續整合伺服器構建。

  Newman 是 Postman 推出的一個 nodejs 庫,直接來說就是 Postman 的json檔案可以在命令列執行的外掛。

  官方文件:https://www.npmjs.com/package/newman

2、安裝

  淘寶映象全域性安裝newman的命令:

1 npm install -g newman --registry=https://registry.npm.taobao.org

   安裝成功,如下圖所示,顯示newman成功安裝好的版本號。

   驗證newman是否安裝成功,檢視newman版本號命令:newman -version

 3、常用Newman語法

  列舉一些常用的Newman命令語法。

1、執行命令 newman run URL連線   或   newman run 集合檔名
2、-e,- environment <path>    指定Postman環境的URL或路徑。
3、-g,–globals    指定全域性變數的檔案地址或url 
4、-d,—-iteration-data   指定用於迭代的資料來源檔案路徑
5、-n,–iteration-count     指定迭代次數
6、–export-globals     匯出全域性環境變數
7、–timeout (ms)     設定整個集合執行完成執行的時間
8、–export-collection     匯出集合檔案
9、–timeport-request (ms)    指定等待請求返回響應的時間
10、–timeout-script (ms)    指定等待指令碼執行完成的時間

  我們可通過cmd終端檢視newman run執行時可以所帶的相關引數。newman run -h檢視所有相關引數語法,如下圖所示。

 4、Newman例項

  該newman run命令允許您指定要執行的集合。您可以輕鬆地從Postman App中將Postman Collection匯出為json檔案,並使用Newman執行它。

1 newman run examples/sample-collection.json

  例:執行Postman匯出的介面集合及環境變數,開啟cmd,定位至Json檔案目錄,輸入newman執行命令。

1 newman run Test.postman_collection.json -e mukeOnline.postman_environment.json

  run執行介面集合的命令,-e 帶入介面集合的環境變數

  我們在cmd終端定位至介面集合和環境變數的JSON檔案目錄,執行命令列結果如下圖:

 

   由上面的執行可看出在cmd終端執行的結果不太方便測試人員的檢視與測試報告的形成。那麼我們如何利用newman命令來生成輸出測試報告檔案?

指定測試報告的匯出格式:目前支援四種格式:cli,json,html,junit

  --reporter-{{reporter-name}}-{{reporter-option}}

支援同時匯出多種測試報告格式

  JSON --reporter-json-export <path>

  HTML --reporter-html-export <path>

  JUNIT/XML --reporter-junit-export <path>

  我們還拿上面的集合和環境變數來舉例,生成HTML報告時需要安裝html套件,命令列中執行:

1 npm install -g newman-reporter-html --registry=https://registry.npm.taobao.org

  安裝newman-reporter-html,如下圖

   執行命令,即可在檔案目錄下檢視生成的HTML檔案形式的測試報告。

1 newman run Test.postman_collection.json -e mukeOnline.postman_environment.json -r html --reporter-html-export report.html

  生成的HTML測試報告檔案,如下圖所示。

  我們可以看出用上面HTML生成的報告樣式比較簡單,怎麼讓我們的報告顯得高大上呢?那麼我們就得使用Htmlextra套件

  首先安裝使用htmlextra套件生成比較高階的html報告,使用方法和html的相同,需要安裝htmlextra,命令列中輸入:

1 npm install -g newman-reporter-htmlextra

  安裝成功,如下圖所示。

   我們把上面的介面集合用例再執行一下,看看這個測試報告的效果如何。newman執行命令如下。

1 newman run Test.postman_collection.json -e mukeOnline.postman_environment.json -r htmlextra --reporter-html-export htmlReport.html

  測試報告結果如下圖,可看出報告的樣式比之前好多了。

三、Git

  下載GitExtensions和Git,將Postman匯出的json檔案上傳至github上,拉取下來可進行迭代。這裡不過多說明,可自行查詢資料。

 四、Jenkins

1、簡介

  Jenkins是一個開源的、可擴充套件的持續整合、交付、部署(軟體/程式碼的編譯、打包、部署)的基於web介面的平臺。允許持續整合和持續交付專案,無論用的是什麼平臺,可以處理任何型別的構建或持續整合。

2、安裝

  下載Jenkins:https://www.jenkins.io/download/,下載後並安裝。

  安裝時出現的問題:

(1)問題一:注意安裝Jenkins之前先安裝tomcat和Java jdk,否進入不了Jenkins頁面。當安裝好tomcat和java jdk後,Jenkins頁面仍卡著不動。

  解決方法:檢視並修改配置檔案設定,重啟tomcat服務。進入Jenkins根目錄,開啟hudson.model.UpdateCenter.xml檔案,將檔案中的url,修改為http://updates.jenkins.io/update-center.json,即去掉https中的s或更改為

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,修改好後,重新啟動tomcat服務即可。

(2)問題二:進入Jenkins頁面,到配置安裝元件時,出現No such plugin: cloudbees-folder的報錯。

  解決方法:開啟連結“http://ftp.icm.edu.pl/packages/jenkins/plugins/cloudbees-folder/”,在最下面找到並開啟“latest”目錄。將目錄中的“cloudbees-folder.hpi”下載下來後放在“jenkins安裝目錄\war\WEB-INF\detached-plugins”資料夾中。在“控制皮膚-管理工具-服務”中找到“jenkins”服務,重啟服務,重啟tomcat服務。重新訪問http://localhost:8080/即可。

 

3、Jenkins配置Git與newman

  新建Item,選擇Freestyle project

  任務的Git地址、證照與分支的相關配置

  設定構建newman執行命令

1 newman run Test.postman_collection.json -e mukeOnline.postman_environment.json

   設定好後儲存,點選Build Now

   生成構建結果

   構建後生成Junit報告,Git上新建空xml檔案,nweman執行命令指向該xml檔案。構建前執行命令修改為

newman run Test.postman_collection.json -e mukeOnline.postman_environment.json -r junit --reporter-junit-export newman\xmlReport.xml

  執行結果測試報告可在Test Result中可檢視。

 

   設定定時任務

  Build periodically 每天上午10點構建一次  H 10 * * *,如下圖所示。

  以上就是簡單說明了一下Postman+Newman+Git+Jenkins介面自動化測試的設計與執行。後期有待優化與完善,請各位看官多多指教。

相關文章