httprunner框架学习总结
目前在開(kāi)發(fā)通用接口平臺(tái),已經(jīng)完成參數(shù)引擎,內(nèi)置函數(shù)引擎,執(zhí)行引擎,API抽離等工作,突然發(fā)現(xiàn)了httprunner這個(gè)優(yōu)秀的開(kāi)源APItest框架,初步研究發(fā)現(xiàn)httprunner各方面都很優(yōu)秀,遂進(jìn)一步考慮是否將通用接口平臺(tái)執(zhí)行后臺(tái)遷移至httprunner,經(jīng)過(guò)多日的研究我發(fā)現(xiàn)了一個(gè)很不友好的地方。
根據(jù)文章《HttpRunner 的測(cè)試用例分層機(jī)制》,文中介紹用例分層,API抽離其中有句話是這樣說(shuō)的:“API接口定義必須放置在?api?目錄下”,這樣的話如果我們web的數(shù)據(jù)存儲(chǔ)在MySQL中的話,無(wú)法實(shí)現(xiàn)這一點(diǎn),那么在調(diào)用API就會(huì)提示報(bào)錯(cuò)未知定義的API,如果數(shù)據(jù)存儲(chǔ)在yaml文件中,并應(yīng)用httprunner的腳手架機(jī)制生產(chǎn)相應(yīng)的目錄結(jié)構(gòu),那么這樣的web化根本是無(wú)用的,只適合一個(gè)人自己玩,根本不具有web化的意義(共享即是正義)。
基于這點(diǎn),我放棄遷移web執(zhí)行后臺(tái)至httprunner的想法,繼續(xù)自行開(kāi)發(fā)批量執(zhí)行及報(bào)告生成模塊。
下面也分享一下我學(xué)習(xí)httprunner的所得吧。
1、安裝
windows安裝方法,直接pip安裝;也可以去github下載壓縮包解壓后源碼安裝,不多說(shuō)了
2、知識(shí)介紹
在httprunner中,測(cè)試用例引擎最大的特色就是支持?YAML/JSON?格式的用例描述形式,也就是說(shuō)你可以用編輯YAML的方式來(lái)編寫(xiě)接口自動(dòng)化腳本,如下代碼
文件名稱:xxxx.yml
- config:name: demovariable_binds:- UserName: test001- Password: 123456request:base_url: http://xxx.debugtalk.comheaders:Accept: application/jsonUser-Agent: iOS/10.3- test:name: regist user which passwd is wrongrequest:url: http://m.aicai.com/m/saveSimpleRegister.do?agentId=14759&vt=5method: POSTheaders:User-Agent: 'iOS/10.3'token: content.tokenjson:account: "postsay1"password: "%^&*()"phone: "13751077575"isProtocol: onajaxReq: 1validate:- {"check": "status_code", "comparator": "eq", "expect": 200}- {"check": "content.status", "comparator": "eq", "expect": error}- {"check": "content.msg", "comparator": "str_eq", "expect": xlkhslhdfklsdlfh}- eq: ["status_code" , 200]- eq: ["content.status" , error]- eq: ["content.msg" ,xhixvjkdjfljsdf]代碼釋義:config 為當(dāng)前case的配置項(xiàng)標(biāo)志,從代碼中也可以看到,可以包括參數(shù)等信息;
test為API標(biāo)志,包含API信息以及斷言信息
ps:不懂YAML的童鞋請(qǐng)自行學(xué)習(xí)其他資料
執(zhí)行時(shí)在yml文件夾所在目錄的cmd中輸入 httprunner xxxx.yml 即可。
可以看到執(zhí)行結(jié)束,有報(bào)告生成,如下圖
這樣就完成了一個(gè)簡(jiǎn)單接口自動(dòng)化腳本的編寫(xiě)和執(zhí)行以及報(bào)告的生成,極大的簡(jiǎn)化了接口自動(dòng)化的難度,你無(wú)需接觸Python requests unittest 等代碼,事實(shí)上httprunner的底層就是那些東西,用約定格式的YAML文件傳入數(shù)據(jù),httprunner在底層處理數(shù)據(jù),發(fā)送請(qǐng)求,校驗(yàn)對(duì)比結(jié)果,生成報(bào)告,就醬子。
其他呢,httprunner還提供了腳手架機(jī)制,一鍵生成httprunner的項(xiàng)目結(jié)構(gòu),提供抽離API機(jī)制 等等,到我發(fā)現(xiàn)無(wú)法web化后,遂放棄,因?yàn)槔戏蛞矔?huì)寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)喲,還是自己寫(xiě)后臺(tái)吧。
如果你想使用httprunner做接口自動(dòng)化,建議去看說(shuō)明文檔,ok,就醬紫吧。
?
轉(zhuǎn)載于:https://www.cnblogs.com/fengyca/p/8421483.html
總結(jié)
以上是生活随笔為你收集整理的httprunner框架学习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c++ Linux中查找查找文件夹中的所
- 下一篇: Oracle表空间创建的sql