接口測試并不只是測試參數(shù)和返回值
一般理解的接口測試無非就是,輸入url、參數(shù)值,點(diǎn)擊請(qǐng)求發(fā)送查看一下響應(yīng)值和響應(yīng)狀態(tài)碼是否正常就完事兒了。

但是接口測試真正的關(guān)注點(diǎn)不值這些,今天就給大家說說接口測試有那些需要關(guān)注的地方。
在實(shí)際項(xiàng)目中,后端接口測試通過后,一般前端還需要再測試一遍,讀者可能會(huì)提出疑問:后端接口測試一遍,前端也測試一遍,是不是重復(fù)測試了?其實(shí)這兩者并不重復(fù),區(qū)別在于后端接口測試和前端功能測試各自的側(cè)重點(diǎn)不一樣,后端接口測試側(cè)重點(diǎn)是檢查數(shù)據(jù)的交換、傳遞和控制管理過程。而前端功能測試更加測試檢測提供給用戶的使用功能是否正確可用。雖然各種測試的重點(diǎn)不一樣,但也存在相同的部分,以功能測試、業(yè)務(wù)邏輯測試、性能測試和安全測試為例:
一、接口功能關(guān)注點(diǎn)
功能測試:由于測試最終的目標(biāo)都是業(yè)務(wù)功能是否正確且穩(wěn)定可用,所以不管是前端給用戶使用的功能策是,還是后端的接口測試,功能保障是基本要求,也是后端測試和前端測試兩種測試重合度最高的一塊。
具體關(guān)注點(diǎn):
1.接口的功能是否正確實(shí)現(xiàn)了
2.接口是否按照設(shè)計(jì)文檔中來實(shí)現(xiàn)(比如username參數(shù)寫為了name,那么這就不符合,因?yàn)榻涌谖臋n在整個(gè)開發(fā)中都需要使用,所以接口實(shí)際的設(shè)計(jì)要與接口設(shè)計(jì)文檔中保持一致)
3.兼容性測試: 比如說今天接口進(jìn)行了調(diào)整,但是前端沒有進(jìn)行變更,這時(shí)候需要驗(yàn)證新的接口是否滿足舊的調(diào)用方式
4.錯(cuò)誤碼測試: 通用的錯(cuò)誤碼與業(yè)務(wù)錯(cuò)誤碼是否能夠清晰的說明調(diào)用問題,錯(cuò)誤碼是否能夠盡可能的全的覆蓋所有的情況
5.返回值測試: 返回值除了內(nèi)容需要是正確的,還需要類型也是正確的,保證調(diào)用方拿到這些參數(shù)能夠正確的解析
6.默認(rèn)值測試: 很多情況一些非必填的參數(shù)會(huì)有默認(rèn)值,比如說一個(gè)查詢的接口,參數(shù)count為返回查詢的結(jié)果數(shù)量, 默認(rèn)為10,那么就應(yīng)該有一條case來測試,當(dāng)然前置條件是數(shù)據(jù)庫里面必須要存在這樣的數(shù)據(jù)超過10條。
二、接口業(yè)務(wù)邏輯測試
1.是否有依賴業(yè)務(wù),比如查看訂單,是需要用戶首先登錄的,所以肯定要保證登錄了或有相應(yīng)的cookie
2.業(yè)務(wù)邏輯測試: 傳遞正確的參數(shù),接口對(duì)數(shù)據(jù)庫進(jìn)行查詢的操作,需要去驗(yàn)證數(shù)據(jù)庫查詢是否正確,接口對(duì)數(shù)據(jù)庫進(jìn)行 增刪改的操作,也需要看數(shù)據(jù)庫是否同步進(jìn)行了這些操作
三、接口性能測試
1.接口響應(yīng)時(shí)間
2.接口對(duì)應(yīng)的服務(wù)器的吞吐量
3.接口并發(fā)數(shù)量
4.服務(wù)器進(jìn)出口帶寬
四、接口安全測試
1.接口中敏感信息是否加密
2.必要參數(shù)是否后端也進(jìn)行校驗(yàn)(現(xiàn)在很多系統(tǒng)前后端架構(gòu)是分離的,從安全層面來說,只依賴前端進(jìn)行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前端太容易了), 需要后端同樣進(jìn)行控制,在這種情況下就需要從接口層面進(jìn)行驗(yàn)證)
3.接口是否防惡意請(qǐng)求(SQL注入)
4.cookie:就是將header中的cookie修改或刪除后看是否能返回相應(yīng)的error code
5.header:就是刪除或修改header中部分參數(shù)的值,看是否能返回相應(yīng)的error code
6.唯一識(shí)別碼:刪除修改唯一識(shí)別碼測試
五、接口測試工具
apipost可以進(jìn)行接口的功能測試和業(yè)務(wù)邏輯測試,除此之外還有強(qiáng)大的接口文檔生成功能。

jmeter強(qiáng)大的接口性能測試功能

