? ? ?最近試著將postman測試腳本接入到Jenkins中實現(xiàn)自動執(zhí)行。過程遇到一些不好解決的問題,幸得一個博主的點播慰技,終于成功。本著分享的精神组砚,把整個配置的過程整理了一下方便以后查看吻商,也方便其他同學(xué)參考。
? ? 我這里之前安裝過postman糟红、node.js艾帐、Jenkins,過程也比較簡單盆偿,所以不再整理一遍啦柒爸。
一、 Postman測試腳本
1. 設(shè)置請求參數(shù)
選擇請求方式事扭,get或post捎稚,將URL填入;
當(dāng)為post請求時,需填寫參數(shù):選擇body下的x-www-form-urlencoded阳藻,依次填寫key與value
2. 請求參數(shù)調(diào)用變量
? ? ?若要獲取接口返回結(jié)果晰奖,作為后續(xù)其他接口的參數(shù),需將其設(shè)為變量腥泥,在Tests中填寫以下函數(shù)匾南,在調(diào)用時,使用{{access_token}}:
*********************************************************
//保存響應(yīng)結(jié)果json
var jsonData = JSON.parse(responseBody);
//將響應(yīng)結(jié)果中的token值保存為全局變量access_token?
//最新版本pm環(huán)境變量設(shè)置使用方法
pm.globals.set("access_token",jsonData.token);
*********************************************************
?????? 調(diào)用內(nèi)置的變量蛔外,比如時間戳蛆楞,使用{{$timestamp}}
3. 加入斷言驗證
? ? ? ?通過斷言,對接口返回結(jié)果進(jìn)行驗證夹厌。在Tests中添加以下函數(shù):
*********************************************************
//1.驗證返回狀態(tài)碼是否是200
pm.test("Status code is 200",function () {
???pm.response.to.have.status(200);
});
//2.驗證返回結(jié)果中指定只是否符合預(yù)期豹爹,reports[0].status.configuredState標(biāo)識reports中第一個數(shù)組下,status里configuredState的值
pm.test("assertconfiguredState",function(){
???pm.expect(pm.response.json().reports[0].status.configuredState).to.eql("STARTED");
});
*********************************************************
4. 保存到收藏夾
?????? Ctrl+s矛纹,彈出以下頁面臂聋,輸入request name,request description或南,選擇collection孩等,也可以創(chuàng)建新的collection,點擊【save】即可保存采够。
5. 批量執(zhí)行收藏夾中請求
?????? 點擊收藏夾右側(cè)三角肄方,彈出菜單,點擊【Run】蹬癌;
?????? 彈出運行設(shè)置頁面权她,設(shè)置運行參數(shù),及運行的請求逝薪,點擊【Run】即可批量執(zhí)行隅要。
6. 導(dǎo)出postman中的測試腳本
?????? 點擊收藏夾右側(cè)三角,彈出菜單董济,點擊【…】按鈕步清,點擊【export】,彈出導(dǎo)出頁面感局,點擊【export】,選擇保存路徑即可
二暂衡、下載newman
1. 需首先下載安裝node.js
? ? 在node.js官網(wǎng)上下載安裝包询微,一步步執(zhí)行即可。
2. 在node.js中下載安裝newman
? ? 下載newman用cpm install -g newman試了很多次都是ERR狂巢,最后下載了cnpm(查了下撑毛,他是淘寶團(tuán)隊將npm的插件同步到中國服務(wù)器,通過這個鏡像可以穩(wěn)定的下載資源),用cnpm的命令去下載newman就很順利了藻雌,如下:
npm install cnpm -g --registry=https://registry.npm.taobao.org
cnpm install -g newman
3. 在newman中執(zhí)行用例
? ? ? Cmd執(zhí)行以下命令雌续,xx\xx.json為postman導(dǎo)出用例的絕對路徑(如果是在命令行當(dāng)前的路徑下,填寫相對路徑也可以)胯杭; -k表示禁用嚴(yán)格ssl(在這里遇到一個問題驯杜,postman里正常執(zhí)行,但newman里一直報找不到第一證書的錯誤做个,最后終于在一個博客里找到解決方案鸽心,加一個-k參數(shù),禁用嚴(yán)格的ssl):
newman runE:\PostmanData\server-manager-login.json -k
4. newman生成html報告工具
? ? ? ?若要生成html的測試報告居暖,可安裝插件顽频,在cmd中輸入以下命令:
cnpm install -g newman-reporter-html
?????? 輸入以下命令,執(zhí)行測試并將測試結(jié)果生成HTML報告輸出到指定目錄下太闺,不過這樣控制臺中就不會輸入任何日志了:
newman runE:\PostmanData\server-manager-login.json -k --reporters html--reporter-html-export E:\Po stmanData\report\
三糯景、配置Jenkins
1. 創(chuàng)建并配置項目
?????? 創(chuàng)建一個自由風(fēng)格的項目,在【構(gòu)建】中選擇【Execute Windows batch command】,輸入以下命令省骂,點擊【保存】:
newman runE:\PostmanData\server-manager-login.json -k
2. 構(gòu)建項目蟀淮,執(zhí)行測試
?????? 點擊【build now】執(zhí)行構(gòu)建,在【控制臺輸出】中可以看到運行的日志
3. 增加HTML報告的顯示
?????? 在【構(gòu)建】中修改命令如下:
newman runE:\PostmanData\server-manager-login.json -k --reporters html--reporter-html-export E:\PostmanData\report\report.html
?????? 在【構(gòu)建后操作】中添加【publish HTML reports】冀宴,并輸入html報告所在的路徑灭贷、html報告名稱,以及在Jenkins中報告的標(biāo)題略贮。
? ? ? 構(gòu)建后甚疟,在項目首頁上,就能點擊看html的測試報告了逃延。但是這個報告可觀性不強(qiáng)览妖,Jenkins中的控制臺也沒有日志輸出,所以我最后又把html報告刪掉了(#^.^#)
? ? 至此一個簡單的postman腳本集成到Jenkins中自動執(zhí)行測試的流程就走通啦揽祥!