我有一朋友想從APP測(cè)試轉(zhuǎn)到接口測(cè)試贯莺,雖然給了很多腳本,但是學(xué)起來(lái)依舊困難柱衔。我稍微整理了下日常工作中樊破,我所接觸到的接口測(cè)試主要測(cè)什么,怎么測(cè)唆铐。
首先什么是接口測(cè)試哲戚?接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試,主要用于測(cè)試系統(tǒng)與外部其他系統(tǒng)之間的接口艾岂,以及系統(tǒng)內(nèi)部各個(gè)子模塊之間的接口顺少。測(cè)試的重點(diǎn)是要檢查接口參數(shù)傳遞的正確性,接口功能實(shí)現(xiàn)的正確性澳盐,輸出結(jié)果的正確性祈纯,以及對(duì)各種異常情況的容錯(cuò)處理的完整性和合理性令宿。這是百度上的詳細(xì)介紹,用白一點(diǎn)的話來(lái)說(shuō)腕窥,接口就是client和server數(shù)據(jù)交互的傳遞工具粒没,client通過(guò)接口向server端發(fā)起請(qǐng)求,然后server通過(guò)接口返回參數(shù)給client傳遞server的執(zhí)行結(jié)果簇爆。那么對(duì)于接口我們要做什么癞松?
在拿到接口的時(shí)候,首先查看接口URL和參數(shù)入蛆,是POST還是GET方法响蓉,然后寫好最基礎(chǔ)的接口請(qǐng)求(代碼用Python來(lái)寫),調(diào)試查看接口能正常有數(shù)值返回哨毁。
接著我們來(lái)檢驗(yàn)接口返回值里的節(jié)點(diǎn)枫甲,第一個(gè)就是code=0,表示接口已經(jīng)正常進(jìn)入到server里面扼褪,并且完成了操作想幻,說(shuō)明接口是正確的。然后對(duì)data里面的每一個(gè)參數(shù)進(jìn)行校驗(yàn)话浇,一是返回值是否符合接口定義脏毯,二是返回節(jié)點(diǎn)對(duì)應(yīng)的數(shù)值是否正確。
接下來(lái)幔崖,我們要檢查下接口的功能是否實(shí)現(xiàn)了食店,那么怎么檢驗(yàn)功能是否實(shí)現(xiàn)了?最直接的是數(shù)據(jù)庫(kù)校驗(yàn)赏寇。檢查數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表是否增加了對(duì)應(yīng)的數(shù)據(jù)吉嫩?增加的數(shù)值是否正確?在數(shù)據(jù)庫(kù)校驗(yàn)時(shí)蹋订,被人問(wèn)過(guò)一個(gè)問(wèn)題率挣,你如何證明你校驗(yàn)的數(shù)據(jù)就是接口產(chǎn)生的數(shù)據(jù)?當(dāng)時(shí)第一個(gè)反應(yīng)是數(shù)據(jù)庫(kù)里最新一條數(shù)據(jù)不就是嗎露戒?其實(shí)后面才發(fā)現(xiàn)椒功,這個(gè)說(shuō)法不一定準(zhǔn)確,因?yàn)楹芏鄷r(shí)候我們?cè)谶M(jìn)行接口調(diào)試的時(shí)候智什,參數(shù)基本上是保持不變的动漾,如果本次接口讓server沒(méi)執(zhí)行,那取最后一條數(shù)據(jù)依舊可以校驗(yàn)通過(guò)荠锭。在這種情況下我們可以先檢驗(yàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)是否新增一行旱眯,如果執(zhí)行前和執(zhí)行后數(shù)據(jù)庫(kù)新增了一行數(shù)據(jù),且數(shù)據(jù)數(shù)值和傳入?yún)?shù)一一對(duì)應(yīng),那么就可以認(rèn)為是接口產(chǎn)生的删豺。
到上面為止共虑,可以說(shuō)接口的基本測(cè)試已經(jīng)完成,但是任何接口測(cè)試都還有個(gè)很重要的步驟呀页,那就是必不可少的錯(cuò)誤流測(cè)試妈拌。錯(cuò)誤流最基礎(chǔ)的就是參數(shù)為空或者不存在的情況,還有一些邊界值等校驗(yàn)蓬蝶。
上訴是api接口的接口測(cè)試尘分,有些接口可能還會(huì)涉及到并發(fā)測(cè)試,并發(fā)可以從單用戶并發(fā)和多用戶并發(fā)角度出發(fā)丸氛,校驗(yàn)極端情況下代碼的處理是否正確培愁。到此為止接口功能測(cè)試算是完成了,在測(cè)試過(guò)程中最重要的功能實(shí)現(xiàn)的校驗(yàn)缓窜,要根據(jù)不同的業(yè)務(wù)來(lái)判斷難易定续,測(cè)試要的是校驗(yàn)的全面性,不能漏驗(yàn)禾锤。
另外附加一個(gè)WEB頁(yè)面的接口測(cè)試方法香罐,通過(guò)session可以直接進(jìn)行WEB頁(yè)面的接口測(cè)試。希望大家在學(xué)習(xí)自動(dòng)化上相互幫助时肿,共同進(jìn)步。