今天終於不咋忙了,學習整理一下一直想作卻沒實現的事兒,這事已經摺磨團隊半年之久了。由於項目是B端業務的測試,測試過程當中須要生產大量的測試數據,並且都是跨多個系統的測試,對於後置流程的測試,這些同窗每每要想有一條測試數據,就要自個去一步步的操做前置流程,最關鍵的是太耗時間,一條數據可能要花掉1個小時左右,加上測試環境常常不問題,1小時沒了,結果測試數據也無效了。頭疼吧,你也常常遇到吧。好,下面就經過Postman+Newman+node+Jenkins實現自動化測試,順便生成測試數據吧。html
一. Postman裏須要乾的事node
1. 將須要的測試接口整理到collections裏,最好建立成文件夾的形式git
2. 測試用例編寫,斷言等等都請參考個人postman系列文章github
3. 將須要執行的接口導出存放到本地npm
4. 大部分業務流程都須要進行各類參數化或者接口之間有數據依賴,最好的方式也是經過設置環境變量或者全局變量的方式實現,因此若是設置環境變量,也須要將環境變量導出存放到本地json
導出後存放到本地:網絡
二. Node.jspost
Node.js是幹啥的嘞?由於安裝newman須要先安裝Node.js學習
安裝幫助文檔:https://nodejs.org/en/download/package-manager/測試
下載版本:https://nodejs.org/en/#download
安裝並配置環境變量:
三. Newman
Newman是爲Postman而生,專門用來運行Postman編寫好的腳本。此Newman,非彼Newman,紐曼音樂播放器。
官方幫助文檔:https://www.npmjs.com/package/newman#getting-started
Newman安裝步驟:
4. 由於多數狀況下,爲了更好的看到測試結果,通常會輸出HTML格式的報告,因此也要安裝:newman-reporter-html
newman-reporter-html 安裝及用法官方參考文檔:https://github.com/postmanlabs/newman-reporter-html#readme
cmd命令:npm install -g newman-reporter-html
Newman 執行腳本:
newman run 後面跟上要執行的json文件或者URL(json 和 URL 都由postman導出生成),後面跟一些參數,例如環境變量,測試報告,接口請求超時時間等等。
常見命令:
run 運行newman的命令
-e 加載環境變量的數據
-g 加載全局變量的數據
-n case運行次數,默認運行次數爲1次
–folder 運行collection中的指定folder
--reporters html,junit 指定生成報告的類型
其它命令可在github上查看: https://github.com/postmanlabs/newman#configuring-reporters
本地cmd執行示例命令:
newman run E:\xiaomada\buyEensure.postman_collection.json -e E:\xiaomada\xiaomada_uat.postman_environment.json --reporters html --reporter-html-export E:\xiaomada\result.html
示例解析:
newman run:運行newman的命令
E:\xiaomada\buyEensure.postman_collection.json:要運行的接口,就是再postman裏導出的collections(這裏寫全路徑哦)
-e E:\xiaomada\xiaomada_uat.postman_environment.json:要加載的環境變量,也是postman部分導出的數據
--reporters html 或者 -r html:表示報告結果是html格式
--reporter-html-export E:\xiaomada\result.html:表示導出報告格式是html的報告 到E:\xiaomada\目錄下面,報告名字是result.html
固然,能夠根據本身的實際須要生成JSON格式,cli格式,均可以哦,方法以下:
newman run E:\xiaomada\buyEensure.postman_collection.json -e E:\xiaomada\xiaomada_uat.postman_environment.json
--reporters cli,html,json,junit --reporter-json-export E:\xiaomada\jsonOut.json --reporter-junit-export E:\xiaomada\xmlOut.xml --reporter-html-export E:\xiaomada\htmlOut.html
紅色:表示超時5s--timeout-request 5000
全部的目的都是爲了解放雙手,來吧,Jenkins
四.Jenkins
既然Newman提供了控制檯命令執行方式,那麼經過Jenkins來構建就容易多了。
4. 構建後操做
由於我想用html報告展現,因此這裏須要用到一個插件:Publish HTML reports,須要先安裝後,才能在「構建後操做裏選擇」
參考文檔:https://wiki.jenkins.io/display/JENKINS/HTML+Publisher+Plugin
簡要整理安裝Jenkins插件的方式:
系統管理-->插件管理-->可選插件Tab-->找到想要的插件,勾選-->點安裝按鈕
配置構html reports的步驟:
(1)先選擇Publish HTML reports,上面剛纔安裝的哦
(2)選擇後,出下圖
點擊【新增】進行配置,在配置以後,先看下每一項的說明(轉自網絡)
具體配置項,根據本身的需求來,我只須要下面的配置:
提示:我上面填寫以後,最終的輸出目錄爲%workspace%/HTMLReport/index.html
注意:這裏的路徑都不能使用環境變量。
注意2:這個插件不會自動按照上面的路徑建立文件夾和文件,因此,必定要確保上面路徑上的文件夾和文件已經在工做空間建立好,否則會出現報錯。也就是說,這個插件是不建立任何html內容的。
注意3:這個插進不建立任何HTML報告,因此當你看到你的html內容時,會出現空白頁。若是想要出現html的報告,能夠配合一些xUnit plugin這樣插件來生成html報告,而後再上面的路徑中指向生成的html文件。