Postman+Newman+Git+Jenkins實(shí)現(xiàn)接口自動(dòng)化測試持續(xù)集成

接口測試腳本一般的執(zhí)行流程

? ?做接口測試的話,首先要考慮的是如何選擇一個(gè)合適的工具?在忽略工具是否好用,是否能滿足業(yè)務(wù)要求的前提下,需要考慮一下2點(diǎn):

1、要考慮工具的學(xué)習(xí)成本

2、要考慮團(tuán)隊(duì)的協(xié)作

 接口測試腳本的執(zhí)行流程:

團(tuán)隊(duì)成員協(xié)作編寫接口用例->用例歸檔到git/svn->腳本集成jenkins,在環(huán)境更新后自動(dòng)觸發(fā)執(zhí)行或定時(shí)執(zhí)行。

Postman工具常見的接口測試流程是怎樣的? 使用Postman+Newman+Git+Jenkins+釘釘/郵件提醒? ? ? ? ? ? ? ???????????????????????????????????????????????????????????????????????????????????????????? Windows系統(tǒng)Newman安裝 1、下載Node.js進(jìn)行安裝,然后配置node的環(huán)境變量???????????????????????????????????????????????? 2、借助npm工具,安裝Newman npm install -g newman 3、運(yùn)行Newman 通過Newman來運(yùn)行某個(gè)postman腳本: newman run? mycollection.json 用newman執(zhí)行postman腳本的效果如下:

Centos系統(tǒng)Newman安裝 1、先下載安裝nodejs?(必須安裝10.0以上的版本 從http://nodejs.cn/download/下載linux系統(tǒng)壓縮包?,,解壓,配置環(huán)境變量? ??
tar xvJf ***.tar.xzecho "export PATH=\"\$PATH:/root/tools/node-v14.8.0-linux-x64/bin\"" \ >> ~/.bash_profile &&source ~/.bash_profile
????????????????????????????????????????????????????????????????????????????????????????????? 2、安裝Newman npm install -g newman 以上通過命令安裝如果問題的話 ,可以百度解決。 命令行執(zhí)行Postman腳本生成測試報(bào)告 1、命令行執(zhí)行腳本的最基本的命令 newman run?xxx.json?

2、生成html格式的報(bào)告 先安裝插件:npm install -g newman-reporter-html newman?run?demo.postman_collection.json -r html?

3、優(yōu)化報(bào)告顯示格式,生成美觀一點(diǎn)的html格式報(bào)告 先安裝插件:npm install -g newman-reporter-htmlextra newman?run?demo.postman_collection.json -r htmlextra

注意事項(xiàng): 1、-r參數(shù)是--reporters的縮寫,可以在參數(shù)后面指定需要生成的報(bào)告格式 ,比如?-r html,junit,json,htmlextra ?,這個(gè)會(huì)在當(dāng)前目錄下生成一個(gè)newman的文件夾,報(bào)告都在newman的文件夾下面:

2、也可以加上下面的參數(shù)指定報(bào)告名稱:(報(bào)告默認(rèn)生成在當(dāng)前執(zhí)行命令的路徑下 ,也可以自己在報(bào)告名稱前加上指定路徑生成)

--reporter-html-export htmlReport.html?

--reporter-htmlextra-export htmlExtraReport.html?

--reporter-junit-export junitReport.html?

--reporter-json-export jsonReport.html?

3、在使用npm命令安裝newman以及其他的包時(shí),建議都加上-g 參數(shù) ,給所有用戶都安裝對應(yīng)的包,避免在使用命令時(shí)報(bào)錯(cuò)。 使用npm安裝如果比較慢,可以先執(zhí)行下面的命令,切換下載源的地址:

npm config set registry https://registry.npm.taobao.org

4、通過newman-reporter-htmlextra插件生成的html報(bào)告,默認(rèn)是不包含css樣式文件的,如果是發(fā)給別人訪問 ,在斷網(wǎng)的情況下查看報(bào)告,樣式是加載不了的。目前查了一下,好像沒有類似allure里面的那種參數(shù),可以把報(bào)告所需的樣式和報(bào)告一起導(dǎo)出,不過這個(gè)插件支持自定義報(bào)告模板,可以自己手動(dòng)將css樣式文件導(dǎo)出到某個(gè)位置,然后修改報(bào)告模板匯總引用的文件去解決這個(gè)問題。

Postman腳本持續(xù)集成

通過上面的描述 ,現(xiàn)在已經(jīng)可以將postman腳本生成報(bào)告了,離集成jenkins只差最后的配置工作了:

1、在gitee上新建一個(gè)倉庫,將postman調(diào)試好的腳本導(dǎo)出成json文件,上傳到gitee上?(上傳到gitee倉庫的話,可以方便團(tuán)隊(duì)不同成員之間可以更改和查看用例),后續(xù)有腳本變更的時(shí)候也可以直接更新到git上進(jìn)行存儲(chǔ),git上也可以按版本按分支存放你的測試腳本

2、搭建好jenkins環(huán)境,并配置好npm的環(huán)境以及安裝好newman執(zhí)行環(huán)境

3、新建一個(gè)自由風(fēng)格的job,配置從git上獲取腳本:

勾選構(gòu)建環(huán)境下的清除工作空間目錄的配置,將之前的報(bào)告清除(如果執(zhí)行命令生成報(bào)告時(shí)自己指定了報(bào)告名稱的話 ,也可以不清除工作空間的文件)

添加執(zhí)行batch命令 / shell命令,命令內(nèi)容如下:

# batch命令cd /d  %WORKSPACE%newman run demo.postman_collection.json -r htmlextra --reporter-htmlextra-export ./report/htmlExtraReport.html 或者#?shell?命令cd $WORKSPACEnewman run demo.postman_collection.json -r htmlextra --reporter-htmlextra-export ./report/htmlExtraReport.html newman run demo.postman_collection.json -r htmlextra --reporter-htmlextra-export ./report/htmlExtraReport.html

然后再構(gòu)建后操作那里 ,添加報(bào)告的展示:

需安裝HTML Publisher plugin插件

構(gòu)建后 ,即可在jenkins上看到HTML報(bào)告:

發(fā)送釘釘通知 由于現(xiàn)在很多企業(yè)辦公通訊都是用釘釘 ,那么接口自動(dòng)化的腳本執(zhí)行完之后,是可以講結(jié)果發(fā)送到指定的釘釘群里面的。 準(zhǔn)備工作:釘釘帳號(hào),在釘釘上創(chuàng)建指定機(jī)器人 ,jenkins上安裝DingTalk插件。 釘釘PC端機(jī)器人創(chuàng)建操作: 釘釘左上角用戶頭像處->機(jī)器人管理->創(chuàng)建自定義機(jī)器人

設(shè)置機(jī)器人名稱、指定消息通知的群、安全設(shè)置下可以設(shè)置自定義關(guān)鍵字,然后點(diǎn)擊完成,然后頁面會(huì)生成一個(gè)webhook的地址

安裝Jenkins上的DingTalk插件,進(jìn)入系統(tǒng)配置頁面,找到釘釘?shù)呐渲茫?

然后進(jìn)入postman腳本執(zhí)行的job配置頁面,勾選需要通知的機(jī)器人名稱即可。

構(gòu)建開始和結(jié)束后就會(huì)收到釘釘通知:

解決jenkins上無法展示HTML樣式的問題 由于安全考慮,jenkins默認(rèn)是禁止了外部的css和js的加載的,因此html報(bào)告顯示會(huì)出現(xiàn)異常,常見的解決方案有以下幾種: 1、在jenkins系統(tǒng)管理->腳本命令行 輸入以下腳本運(yùn)行:(此方案重啟jenkins失效
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP",?"")
2、利用jenkins的插件,在啟動(dòng)節(jié)點(diǎn)的時(shí)候自動(dòng)觸發(fā)某個(gè)job去執(zhí)行g(shù)roovy腳本。搜索安裝Startup Trigger和Groovy插件即可。 配置一個(gè)job,然后在job中執(zhí)行g(shù)roovy腳本:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP",?"")
3、以windows服務(wù)或者java -jar的方式啟動(dòng)的jenkins,可以修改jenkin.xml文件中的啟動(dòng)命令,加入?yún)?shù)
-Dhudson.model.DirectoryBrowserSupport.CSP=

4、用tomcat部署的jenkins,可以直接改catalina.bat文件,找到tomcat/bin下的catalina.bat文件,用Notepad++打開,加上一行代碼

set JAVA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP"

擴(kuò)展學(xué)習(xí) 1、newman的其他用法(比如執(zhí)行命令的時(shí)候加載環(huán)境變配置、設(shè)置執(zhí)行次數(shù)等): https://www.npmjs.com/package/newman ? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2、newman-reporter-htmlextra插件的其他用法(比如報(bào)告過濾數(shù)據(jù),設(shè)置標(biāo)題等): https://www.npmjs.com/package/newman-reporter-htmlextra 3、釘釘通知在jenkins上的配置,還可以指定具體通知的人等高級(jí)用法,可以自己查資料擴(kuò)展一下.覺得釘釘插件提醒不好用的話,也可以自己寫腳本調(diào)用釘釘?shù)慕涌诎l(fā)送消息提醒。

往期推薦

Fiddler Everywhere v1.0.1版本基礎(chǔ)功能介紹

Facebook開源靜態(tài)代碼分析工具Infer介紹

Jenkins自動(dòng)部署測試環(huán)境之jar包部署

一篇文章為你揭秘pytest的基本用法

Jenkins介紹及環(huán)境搭建和目錄結(jié)構(gòu)介紹

Jenkins之系統(tǒng)管理下的各配置選項(xiàng)介紹

Jenkins教程之java代碼編譯、打包、代碼掃描

python高級(jí)用法之命名元組namedtuple

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容