一、服務(wù)器發(fā)起請(qǐng)求的測(cè)試用例
1.功能用例設(shè)計(jì)
服務(wù)端的接口與客戶端的功能是對(duì)應(yīng)的,那么這個(gè)接口是否能提供給客戶端某個(gè)特定功能所需要的數(shù)據(jù)自然是我們需要驗(yàn)證的地方,功能性用例的主要目的是幫助我們驗(yàn)證該接口最初設(shè)計(jì)的功能是否被實(shí)現(xiàn)以及該功能是否按照規(guī)定的接口文檔進(jìn)行實(shí)現(xiàn)等等。
2.業(yè)務(wù)邏輯用例設(shè)計(jì)
業(yè)務(wù)邏輯方面的測(cè)試用例主要是針對(duì)服務(wù)端接口的處理邏輯進(jìn)行的用例設(shè)計(jì),這種用例設(shè)計(jì)不是針對(duì)某個(gè)功能點(diǎn)是否實(shí)現(xiàn),而是對(duì)接口的處理邏輯以及一些相互依賴的業(yè)務(wù)進(jìn)行驗(yàn)證,通常依照接口的邏輯流程圖來(lái)進(jìn)行。舉一個(gè)例子,購(gòu)物系統(tǒng)中的兩個(gè)動(dòng)作:登錄和下單操作,這兩個(gè)業(yè)務(wù)是相互依賴的,下單操作必須在登錄完成后(登錄狀態(tài)下),否則無(wú)法完成下單,這個(gè)時(shí)候我們就可以設(shè)計(jì)這樣一條case:沒(méi)有登錄的狀態(tài)下進(jìn)行下單操作,看服務(wù)端如何處理。
3.異常處理的情況
服務(wù)端接口和客戶端之間通常是通過(guò)HTTP請(qǐng)求來(lái)傳遞數(shù)據(jù),在發(fā)送請(qǐng)求的時(shí)候,客戶端會(huì)攜帶各種不同的參數(shù),此時(shí)服務(wù)端會(huì)根據(jù)不同的參數(shù)進(jìn)行不同的處理,所以異常處理主要是針對(duì)請(qǐng)求中的參數(shù)情況:比如參數(shù)增加和缺省、參數(shù)的數(shù)據(jù)類型錯(cuò)誤,參數(shù)攜帶錯(cuò)誤的值、參數(shù)為空等等,這需要我們根據(jù)接口文檔中各種不同的參數(shù)去構(gòu)造不同的參數(shù)異常,檢查服務(wù)端的響應(yīng)情況。
4.性能和安全性方面
服務(wù)器的性能往往是個(gè)非常重要的關(guān)注點(diǎn),在實(shí)際的測(cè)試中我們主要關(guān)注的是接口的QPS數(shù)值,以及CPU和內(nèi)存占用等性能指標(biāo),通常借助于其他工具比如LoadRunner進(jìn)行性能測(cè)試。安全性方面,主要考慮一些常見(jiàn)的安全策略比如請(qǐng)求加密、sql注入等等。
延伸閱讀:
二、接口測(cè)試常用工具
說(shuō)到接口測(cè)試,最常見(jiàn)的一種測(cè)試方式就是檢查服務(wù)端返回的數(shù)據(jù)正確性了。實(shí)際項(xiàng)目中,服務(wù)端在收到客戶端的請(qǐng)求之后,對(duì)請(qǐng)求進(jìn)行處理并將處理的結(jié)果返回給客戶端,這種結(jié)果比較常見(jiàn)的是Json、XML等數(shù)據(jù)格式,所以測(cè)試的時(shí)候一個(gè)主要工作就是檢查這些數(shù)據(jù)的正確性。比如,服務(wù)端以Json的格式返回客戶端需要的數(shù)據(jù),那么在測(cè)試中我們就需要關(guān)注返回的Json中是否包含我們期望的字段、字段的內(nèi)容是否正確等等。這個(gè)時(shí)候自動(dòng)化腳本就顯得非常重要了。
在測(cè)試過(guò)程中發(fā)現(xiàn)好多接口都是以Json格式返回?cái)?shù)據(jù)的,在實(shí)際執(zhí)行中,我們用到了Python的一個(gè)開(kāi)源框架Requests,該框架保留了所有urllib2的優(yōu)點(diǎn),比起urllib2更加簡(jiǎn)潔明了,更像是純粹的“Python”,該框架在平時(shí)接口測(cè)試中幾乎所有的自動(dòng)化腳本中都在使用,關(guān)于該框架,小編之前在一次公開(kāi)課中做過(guò)一次分享,有興趣的話大家可以關(guān)注搜狗測(cè)試粉絲群(459645679)進(jìn)行查看哦。
還有一些工具在實(shí)際的操作中用的比較多,比如Postman。Postman是谷歌Chrome的一個(gè)插件,使用起來(lái)非常簡(jiǎn)單,可以支持我們以get/post等各種方式發(fā)送請(qǐng)求,當(dāng)然也可以自己構(gòu)造請(qǐng)求,服務(wù)器返回的數(shù)據(jù)會(huì)全部展示出來(lái),便于檢查,這和Fiddler比較相似。此外Postman還支持用戶自行構(gòu)造環(huán)境,設(shè)置檢查點(diǎn)等,不考慮時(shí)間的情況下基本能滿足接口數(shù)據(jù)驗(yàn)證的需求。關(guān)于Postman的安裝和使用教程,網(wǎng)上資源比較多,此處就不再贅述了。