接口測(cè)試作為業(yè)務(wù)質(zhì)量的重要保證手段,是整個(gè)質(zhì)量保證過(guò)程中必可不少的手段了,目前主要的測(cè)試方式包括利用工具進(jìn)行測(cè)試比如postman、jmeter,還有純代碼編寫測(cè)試case,測(cè)試平臺(tái),一些支持通過(guò)文件寫測(cè)試用例的框架等。
為什么要做接口測(cè)試在金字塔這樣的自底向上結(jié)構(gòu)中,越靠近底層,測(cè)試越穩(wěn)定,所以我們投入的也應(yīng)該越高;同樣的,越是底層,發(fā)現(xiàn)問(wèn)題越早、越高效,修改和維護(hù)的成本也就越低。但是單元測(cè)試目前只在一些大廠做的比較好,而且單元測(cè)試要想覆蓋到的全面,需要很大的投入,一般的互聯(lián)網(wǎng)公司這塊是缺失,而由于接口測(cè)試的高投資回報(bào)比,決定其大范圍的應(yīng)用,互聯(lián)網(wǎng)公司也會(huì)把中心放到這塊兒。
接口測(cè)試的手段可視化工具類
常用的接口可視化界面工具有postman,和他的情敵Postwoman,jmeter也可以做,postman可以接入Jenkins實(shí)現(xiàn)持續(xù)集成,而且操作方便,功能也很強(qiáng)大,現(xiàn)在互聯(lián)網(wǎng)技術(shù)人員幾乎人手必備。但是會(huì)有個(gè)問(wèn)題,它的靈活性不夠,在寫接口測(cè)試用例的時(shí)候回有時(shí)會(huì)操作mysql、Redis,還會(huì)調(diào)用thrift,甚至需要建立socket鏈接,而且無(wú)法進(jìn)行版本控制。純代碼
純代碼的測(cè)試手段是能滿足所有的接口測(cè)試需求,是最靈活的一種,個(gè)人認(rèn)為也是最好用的一種。不同語(yǔ)言生態(tài)都可以實(shí)現(xiàn),比如java生態(tài)們可以使用restassured、assrtj、junit來(lái)做,python生態(tài)可以使用requests、pytest來(lái)做,不過(guò)這需要編碼能力,對(duì)測(cè)試人員的要求會(huì)高一些。測(cè)試平臺(tái)
通過(guò)搭建一個(gè)測(cè)試平臺(tái),在這上面寫測(cè)試用例,平臺(tái)一般會(huì)提供可視化界面讓測(cè)試人員編寫,平臺(tái)的好處是可以讓不懂編碼的同學(xué)也能快速寫出測(cè)試用例,而且可以對(duì)測(cè)試用例進(jìn)行管理,控制用例執(zhí)行等。支持文件寫用例的框架
還要寫測(cè)試框架支持通過(guò)編寫json、yaml文件編寫測(cè)試用例,有框架解析文件生成測(cè)試用例,然后去執(zhí)行。接口測(cè)試的思路接口測(cè)試用例設(shè)計(jì)主要針對(duì)輸入、處理、輸出進(jìn)行考慮
針對(duì)輸入進(jìn)行設(shè)計(jì)
對(duì)于接口來(lái)說(shuō),輸入就是入?yún)?,一般的參?shù)類型數(shù)值型邊界內(nèi)、邊界值、邊界外三個(gè)方面去考慮特殊值處理不當(dāng)程序異常、類型邊界溢出、錯(cuò)誤信息返回不正確字符串主要考慮字符串長(zhǎng)度和字符串的內(nèi)容空、特殊字符、數(shù)字、表情符號(hào)數(shù)組鏈表多個(gè)重復(fù)值、空、最大范圍值結(jié)構(gòu)體:json、字典字段錯(cuò)誤,字段類型錯(cuò)誤、未包含字段、缺失字段
針對(duì)邏輯設(shè)計(jì)
限制條件數(shù)值類型限制,比如購(gòu)買次數(shù)、登錄次數(shù)、優(yōu)惠券最大面額、訂單取消次數(shù)等狀態(tài)限制:比如是否登錄、是否有訂單等關(guān)系限制:比如好友關(guān)系、關(guān)注關(guān)系,只能查看好友或者關(guān)注人的朋友圈權(quán)限限制:比如銷售只能查看和自己綁定客戶數(shù)據(jù),而管理員可有查看所有客戶數(shù)據(jù)時(shí)間限制:比如未支付過(guò)20分鐘訂單自動(dòng)取消狀態(tài)轉(zhuǎn)換分析比如一個(gè)出租車訂單,從乘客下單、司機(jī)搶單、到達(dá)起點(diǎn)、接上乘客、到達(dá)目的地,發(fā)起支付,支付,評(píng)價(jià)這是一個(gè)完整的訂單狀態(tài)轉(zhuǎn)換流程,必須按照這個(gè)次序,才能正確流轉(zhuǎn),一旦打亂其中任何一個(gè)狀態(tài),就會(huì)出現(xiàn)邏輯問(wèn)題。接口用例可以這樣設(shè)計(jì):正常狀態(tài)遷移: 乘客下單,司機(jī)搶單,異常狀態(tài)遷移:乘客剛下的那,司機(jī)發(fā)起支付,出現(xiàn)異常針對(duì)輸出設(shè)計(jì)
針對(duì)輸出結(jié)果,一般情況下,接口正常處理的結(jié)果可能只有一個(gè),但是異常的處理結(jié)果,可能會(huì)返回多種錯(cuò)誤,那就可以針對(duì)不同的錯(cuò)誤進(jìn)行設(shè)計(jì)。接口超時(shí),舊版本接口,廢棄接口,接口設(shè)計(jì)是否合理,比如字段冗余、接口冗余、返回錯(cuò)誤信息是否清晰明了、調(diào)用是否方便,冪等性總結(jié)接口測(cè)試重要的思路要明確,清晰的理解業(yè)務(wù)邏輯,至于具體的工具根據(jù)自己目前的能力選擇,先去做,在做的過(guò)程中不斷完善不斷學(xué)習(xí),早日提高自己的測(cè)試技能。
碼字不易,歡迎大家點(diǎn)贊評(píng)論支持。