接口測試工具:
這類工具提供的功能相對較簡單,可以模擬和發(fā)送HTTP請求,并顯示返回的接口數(shù)據(jù)。例如HttpRequester、Postman等
接口自動(dòng)化測試工具:
相比接口測試工具,自動(dòng)化測試工具功能更加強(qiáng)大,一般提供用例的批量執(zhí)行、接口返回結(jié)果的斷言及測試報(bào)告的生產(chǎn)等,如JMeter、Robot Framework、soapUI等
接口性能測試工具:
主要用于測試接口的性能,驗(yàn)證接口處理并發(fā)的能力。如JMeter、LoadRunner、soapUI
<<WEB接口開發(fā)與自動(dòng)化測試>>書中,對接口自動(dòng)化測試框架的介紹:
所謂接口自動(dòng)化測試框架 即 將一些框架和庫進(jìn)行整合,其中,通過Requests 庫發(fā)送HTTP接口請求,通過unittest單元測試框架組織和運(yùn)行測試用例,通過HTMLTestRunner生成HTML格式的測試報(bào)告,通過對應(yīng)語言的數(shù)據(jù)驅(qū)動(dòng)來操作數(shù)據(jù)庫。
既然有那么多接口測試工具,為什么還要自己搭建接口測試框架呢?主要是因?yàn)榻涌跍y試工具存在以下不足:
測試數(shù)據(jù)不可控
接口測試的本質(zhì)是對數(shù)據(jù)的測試,調(diào)用接口輸入一些數(shù)據(jù),再驗(yàn)證接口返回的一些數(shù)據(jù)的正確性。如果接口返回的數(shù)據(jù)不可控,那么久無法自動(dòng)斷言接口返回的數(shù)據(jù)。
例如,有一個(gè)用戶查詢接口,要輸入用戶名,返回用戶的年齡、性別、郵箱、手機(jī)號(hào)等數(shù)據(jù)。在測試接口時(shí)傳參username=Tom。那么,數(shù)據(jù)庫里一定要有一條Tom的數(shù)據(jù),否則接口返回為空。要想斷言接口返回的數(shù)據(jù),如Tom的年齡(assert age=22),那么一定要預(yù)先知道接口會(huì)返回哪些數(shù)據(jù),并且每次返回的數(shù)據(jù)必須是固定的。如果無法做到這一點(diǎn),那么斷言失敗時(shí),就不能斷定到底是接口程序引起的錯(cuò)誤,還是測試數(shù)據(jù)變化引起的錯(cuò)誤。我們要做的就是通過初始化測試數(shù)據(jù)排除后一種情況引起的測試失敗。
然而,一般的接口測試工具都沒有初始化測試數(shù)據(jù)的功能,無法真正做到接口測試的"自動(dòng)化"
無法測試加密的接口
這是一般接口測試工具的另一大缺點(diǎn),在實(shí)際項(xiàng)目中,多數(shù)接口并不是可以隨便調(diào)用的,會(huì)使用用戶認(rèn)證、簽名、加密等手段提高接口的安全性。一般接口測試工具無法模擬和生成這些加密算法。
擴(kuò)展能力不足
如當(dāng)我們想生成不同格式的測試報(bào)告,并將測試報(bào)告發(fā)送到指定郵箱。又或想將接口測試集成到CI(持續(xù)集成)中,做定時(shí)任務(wù)。
然而,接口測試工具卻無法實(shí)現(xiàn)功能擴(kuò)展,或需要通過很復(fù)雜的方式才能實(shí)現(xiàn)。相比而言,變成語言就不存在這一的局限性。
聯(lián)系客服