前言
隨著測(cè)試技術(shù)的發(fā)展朵锣,接口自動(dòng)化測(cè)試逐漸成為各大公司投入產(chǎn)出比最高的測(cè)試技術(shù)谬盐。介入時(shí)間早,執(zhí)行效率高诚些,穩(wěn)定性高的優(yōu)點(diǎn)飞傀,讓越來(lái)越多的公司引入接口自動(dòng)化測(cè)試。
框架簡(jiǎn)介
APIAutoTest是處理API接口的輕量級(jí)自動(dòng)化測(cè)試框架,Java語(yǔ)言實(shí)現(xiàn)砸烦,基于TestNG測(cè)試框架犀被,支持持續(xù)集成,自動(dòng)構(gòu)建與測(cè)試外冀。
框架特點(diǎn)
- 數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì),使用TestNG中的@DataProvider讀取Excel中存儲(chǔ)的自動(dòng)化測(cè)試用例西轩。
- 基于TestNG測(cè)試框架
- 使用HttpClient發(fā)送Http請(qǐng)求,并統(tǒng)一接口response返回值為String
- 使用fastJson和Jsoup進(jìn)行數(shù)據(jù)解析庄拇,由于請(qǐng)求返回值的統(tǒng)一,解析數(shù)據(jù)異常方便辜御,方便接入不同接口類型的數(shù)據(jù)
- 獨(dú)立封裝的檢查點(diǎn)“Jsonpath”檢查點(diǎn),極大方便檢查點(diǎn)的設(shè)置
- 在線報(bào)告以及Email報(bào)告
- 持續(xù)集成碳抄、持續(xù)交付、自動(dòng)構(gòu)建與測(cè)試
框架技術(shù)棧圖
框架組件圖
- Maven進(jìn)行項(xiàng)目、依賴管理
- HttpClient進(jìn)行通信
- TestNG測(cè)試框架管理測(cè)試腳本以及測(cè)試驅(qū)動(dòng)
- FastJson/Jsoup用于數(shù)據(jù)解析
- AssertJ用于檢查點(diǎn)設(shè)置
- ExtentReports輸出具備圖表分析的報(bào)告
- SVN+Jenkins實(shí)現(xiàn)持續(xù)集成
框架執(zhí)行流程圖
測(cè)試執(zhí)行的流程(代碼層):
- 測(cè)試執(zhí)行的入口為TestNG的XML文件,通過(guò)讀取xml文件中的執(zhí)行配置信息哼拔,
- 獲取測(cè)試用例的腳本,測(cè)試用例執(zhí)行分為測(cè)試前(@BeforeTest)檬姥,測(cè)試中(@Test),測(cè)試后(@AfterTest)
- @BeforeTest:獲取/解析測(cè)試數(shù)據(jù)(Excel文件),接口關(guān)聯(lián)參數(shù)化崇堵,Cookie裝載等
- @Test:初始化httpclient對(duì)象幸逆,執(zhí)行請(qǐng)求楚昭,獲取響應(yīng)并轉(zhuǎn)換成String等
- @AfterTest:jsonpath檢查點(diǎn)昔案,對(duì)于接口正確/錯(cuò)誤請(qǐng)求的邏輯處理
- 生成在線ExtentReports報(bào)告/日志
- Email報(bào)告,測(cè)試結(jié)果通知測(cè)試相關(guān)人員
測(cè)試用例設(shè)計(jì)
測(cè)試用例設(shè)計(jì):
- 通過(guò)TestNG的@DataProvider獲取Excel測(cè)試數(shù)據(jù)
- 將數(shù)據(jù)的表頭與數(shù)據(jù)存儲(chǔ)在map中,具體使用時(shí)方便
- jsonpathPoint:jsonpath檢查點(diǎn),框架特點(diǎn)之一,極大的方便斷言的編寫(xiě)
- 前后綴的使用:通過(guò)前后綴使用來(lái)區(qū)分統(tǒng)一作用的數(shù)據(jù),如請(qǐng)求參數(shù):params
- 是否運(yùn)行/檢查控制:通過(guò)編寫(xiě)測(cè)試用例時(shí)就可以控制該用例是否運(yùn)行,是否檢查
- 不足之處:一個(gè)接口的測(cè)試數(shù)據(jù)對(duì)應(yīng)一個(gè)Excel文件/Sheet表,后期數(shù)據(jù)量太大
測(cè)試報(bào)告
結(jié)語(yǔ)
接口自動(dòng)化測(cè)試在這個(gè)追求效率的時(shí)代,逐漸的取代UI自動(dòng)化測(cè)試橙垢,而做接口自動(dòng)化測(cè)試的工具很多垛叨,比如soapUI嗽元,postman,jmeter等等剂癌,但是這些通用的工具的可擴(kuò)展性以及跟項(xiàng)目的契合度上并不是十分合適。框架的作用在于使測(cè)試腳本編寫(xiě)變得簡(jiǎn)單,增強(qiáng)測(cè)試腳本的可維護(hù)性五垮,容錯(cuò)率等放仗,提高測(cè)試腳本的編寫(xiě)效率润绎,從而提高測(cè)試效率。