Postman+Newman+Git+Jenkins接口自動化測試

1、Postman

   一、建立Collection,在Collection中建立接口請求,以下圖所示。html

   二、編寫接口對應的斷言Test和Pre-request Script,以下圖所示。
java

   三、配置接口對應的環境變量或全局變量。node

   四、導出接口集合Collection和導出對應接口的環境變量,導出生成的是JSON文件。git

  以下圖所示,導出生成的接口集合和環境變量JOSN文件github

  如你們對以上Postman的操做疑惑的,可參考以前我寫過的Postman(一)兩篇博客。web

 2、Newman

 一、簡介

  newman是Postman的命令集合運行器,能夠經過它直接從命令行運行和測試Postman,以便後續在持續集成服務器構建。npm

  Newman 是 Postman 推出的一個 nodejs 庫,直接來講就是 Postman 的json文件能夠在命令行執行的插件。json

  官方文檔:https://www.npmjs.com/package/newmantomcat

二、安裝

  淘寶鏡像全局安裝newman的命令:服務器

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

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

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

 三、經常使用Newman語法

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

一、運行命令 newman run URL鏈接   或   newman run 集合文件名
二、-e,- environment <path>    指定Postman環境的URL或路徑。
三、-g,–globals    指定全局變量的文件地址或url 
四、-d,—-iteration-data   指定用於迭代的數據源文件路徑
五、-n,–iteration-count     指定迭代次數
六、–export-globals     導出全局環境變量
七、–timeout (ms)     設置整個集合運行完成執行的時間
八、–export-collection     導出集合文件
九、–timeport-request (ms)    指定等待請求返回響應的時間
十、–timeout-script (ms)    指定等待腳本執行完成的時間

  咱們可經過cmd終端查看newman run運行時能夠所帶的相關參數。newman run -h查看全部相關參數語法,以下圖所示。

 四、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

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

3、Git

  下載GitExtensions和Git,將Postman導出的json文件上傳至github上,拉取下來可進行迭代。這裏不過多說明,可自行查找資料。

 4、Jenkins

一、簡介

  Jenkins是一個開源的、可擴展的持續集成、交付、部署(軟件/代碼的編譯、打包、部署)的基於web界面的平臺。容許持續集成和持續交付項目,不管用的是什麼平臺,能夠處理任何類型的構建或持續集成。

二、安裝

  下載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/便可。

 

三、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接口自動化測試的設計與執行。後期有待優化與完善,請各位看官多多指教。

相關文章
相關標籤/搜索