轉(zhuǎn)自@山丘
前言
? ? ? ??隨著測試技術(shù)的發(fā)展帖鸦,接口自動(dòng)化測試逐漸成為各大公司投入產(chǎn)出比最高的測試技術(shù)胚嘲。介入時(shí)間早,執(zhí)行效率高馋劈,穩(wěn)定性高的優(yōu)點(diǎn),讓越來越多的公司引入接口自動(dòng)化測試侣滩。?
框架簡介
? ? ? ? ??APIAutoTest是處理API接口的輕量級自動(dòng)化測試框架变擒,Java語言實(shí)現(xiàn),基于TestNG測試框架策添,支持持續(xù)集成毫缆,自動(dòng)構(gòu)建與測試唯竹。
框架介紹
????????1.????數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)苦丁,使用TestNG中的@DataProvider讀取Excel中存儲(chǔ)的自動(dòng)化測試用例。
????????2.????基于TestNG測試框架
????????3.????使用HttpClient發(fā)送Http請求产上,并統(tǒng)一接口response返回值為String
????????4.????使用fastJson和Jsoup進(jìn)行數(shù)據(jù)解析蛾狗,由于請求返回值的統(tǒng)一,解析數(shù)據(jù)異常方便沉桌,方便接入不同接口類型的數(shù)據(jù)
????????5.????獨(dú)立封裝的檢查點(diǎn)“Jsonpath”檢查點(diǎn)留凭,極大方便檢查點(diǎn)的設(shè)置
????????6.????在線報(bào)告以及Email報(bào)告
????????7.????持續(xù)集成、持續(xù)交付蔼夜、自動(dòng)構(gòu)建與測試
框架技術(shù)棧圖
框架組件圖
?? Maven進(jìn)行項(xiàng)目挎扰、依賴管理
?? HttpClient進(jìn)行通信
?? TestNG測試框架管理測試腳本以及測試驅(qū)動(dòng)
?? FastJson/Jsoup用于數(shù)據(jù)解析
?? AssertJ用于檢查點(diǎn)設(shè)置
?? ExtentReports輸出具備圖表分析的報(bào)告
?? SVN+Jenkins實(shí)現(xiàn)持續(xù)集成
框架執(zhí)行流程圖
測試執(zhí)行的流程(代碼層):
測試執(zhí)行的入口為TestNG的XML文件
獲取測試用例的腳本翠订,測試用例執(zhí)行分為測試前(@BeforeTest),測試中(@Test)尽超,測試后(@AfterTest)
@BeforeTest:獲取/解析測試數(shù)據(jù)(Excel文件),接口關(guān)聯(lián)參數(shù)化傲绣,Cookie裝載等
@Test:初始化httpclient對象巩踏,執(zhí)行請求,獲取響應(yīng)并轉(zhuǎn)換成String等
@AfterTest:jsonpath檢查點(diǎn)塞琼,對于接口正確/錯(cuò)誤請求的邏輯處理
生成在線ExtentReports報(bào)告/日志
Email報(bào)告,測試結(jié)果通知測試相關(guān)人員
測試用例設(shè)計(jì)
測試用例設(shè)計(jì):
通過TestNG的@DataProvider獲取Excel測試數(shù)據(jù)
將數(shù)據(jù)的表頭與數(shù)據(jù)存儲(chǔ)在map中毅往,具體使用時(shí)方便
?jsonpathPoint:jsonpath檢查點(diǎn)派近,框架特點(diǎn)之一,極大的方便斷言的編寫
前后綴的使用:通過前后綴使用來區(qū)分統(tǒng)一作用的數(shù)據(jù)渴丸,如請求參數(shù):params
是否運(yùn)行/檢查控制:通過編寫測試用例時(shí)就可以控制該用例是否運(yùn)行,是否檢查
不足之處:一個(gè)接口的測試數(shù)據(jù)對應(yīng)一個(gè)Excel文件/Sheet表戒幔,后期數(shù)據(jù)量太大
測試報(bào)告
結(jié)語
接口自動(dòng)化測試在這個(gè)追求效率的時(shí)代碟嘴,逐漸的取代UI自動(dòng)化測試,而做接口自動(dòng)化測試的工具很多错沃,比如soapUI雀瓢,postman,jmeter等等刃麸,但是這些通用的工具的可擴(kuò)展性以及跟項(xiàng)目的契合度上并不是十分合適。框架的作用在于使測試腳本編寫變得簡單把沼,增強(qiáng)測試腳本的可維護(hù)性,容錯(cuò)率等饮睬,提高測試腳本的編寫效率,從而提高測試效率割去。