匯智動(dòng)力學(xué)院-淺談接口測試
1.首先什么是接口呢?
我們訪問一個(gè)網(wǎng)站的時(shí)候 網(wǎng)站的信息是在數(shù)據(jù)庫中存在的,但是系統(tǒng)不會(huì)把訪問數(shù)據(jù)庫的權(quán)限給我們,只能給我們提供一個(gè)接口 供我們訪問。其實(shí)接口就是我們從數(shù)據(jù)庫中取數(shù)據(jù)或者插入數(shù)據(jù)。
接口分為系統(tǒng)內(nèi)部接口和外部接口:內(nèi)部接口就是系統(tǒng)內(nèi)模塊和模塊之間交互的接口,外部接口就是系統(tǒng)和系統(tǒng)之間交互的接口。另外一點(diǎn) 前端和后端的交互也是通過接口。
2.什么是接口測試呢?
接口測試就是比功能測試還簡單的功能測試,區(qū)別就是功能測試是在頁面上點(diǎn)點(diǎn)點(diǎn),而接口測試就是需要開發(fā)人員給出接口文檔 接口文檔中包含:url 、請求方式、請求參數(shù)。我們可以借助工具來進(jìn)行測試。
其中最常用的接口請求方式就是 get 、post、json 等。
如果是get請求 不需要借助任何工具,直接在瀏覽器中輸入url按照url?參數(shù)=值&參數(shù)=值的形式就可以就可以
get和post的區(qū)別是什么呢:
1、get請求只有請求頭,沒有請求體,它的參數(shù)是寫在url里面
2、get請求一般用來向服務(wù)器獲取數(shù)據(jù),post請求呢用來向服務(wù)器發(fā)送數(shù)據(jù)
3、get請求有參數(shù)長度限制,post請求沒有
4、get請求沒有post請求安全
接口測試的流程:1分析需求
2.開發(fā)提供接口文檔
3.根據(jù)接口文檔編寫用例
4.評審用例
5.開始測試并提交測試報(bào)告
接口用例怎么寫呢?一條 接口用例包含:項(xiàng)目、模塊、用例id、用例描述、請求url、請求方式、請求數(shù)據(jù)、預(yù)期結(jié)果、請求報(bào)文、返回報(bào)文。
接口測試用例怎么設(shè)計(jì)?我們要從以下幾個(gè)方面去考慮用例的設(shè)計(jì):1.基本功能測試就是設(shè)計(jì)出符合正常業(yè)務(wù)場景的用例
2.邊界值分析:覆蓋所有必選參數(shù)、參數(shù)有無或者null、參數(shù)組合在一起、參數(shù)的個(gè)數(shù)、輸入?yún)?shù)的順序、參數(shù)數(shù)值大小、參數(shù)中包含特殊字符
3.冪等級測試(假如登錄接口 我連續(xù)點(diǎn)擊登錄會(huì)提示什么)
4.并發(fā)測試
5.事務(wù)性測試
6.大數(shù)據(jù)量測試
7.環(huán)境異常測試
基本上設(shè)計(jì)用例的時(shí)候考慮到上面七個(gè)點(diǎn)基本就可以了。
執(zhí)行接口測試用例的時(shí)候我們需要注意的點(diǎn):
1、接口返回?cái)?shù)據(jù)
a) 返回json數(shù)據(jù)的層次關(guān)系是否與文檔一致
b) 數(shù)值類型數(shù)據(jù): 特別是金額,負(fù)數(shù)、小數(shù)轉(zhuǎn)為json輸出是否正確
c) 接口返回?cái)?shù)據(jù)與接口文檔一致
d) 接口返回?cái)?shù)據(jù)和數(shù)據(jù)庫一致
e) 接口返回?cái)?shù)據(jù)符合業(yè)務(wù)邏輯(比如轉(zhuǎn)賬功能,從一個(gè)賬戶扣款,另一個(gè)要增加相應(yīng)金額)
f) 對于列表,應(yīng)該根據(jù)請求參數(shù),也應(yīng)該驗(yàn)證列表的長度是否與期望值一致
g) 負(fù)面測試用例,應(yīng)驗(yàn)證ERROR INFO是否與實(shí)際相匹配
2.
2、數(shù)據(jù)庫
a) 接口傳入數(shù)據(jù)與插入DB的數(shù)據(jù)一致性:
b) 前端某個(gè)操作涉及后臺(tái)DB多張表時(shí),每張表都要檢驗(yàn)數(shù)據(jù)正確性。
3、安全層面:
a) 后端接口返回給前端的數(shù)據(jù)包含敏感信息(如:姓名、身份證號、卡號、手機(jī)號、加密后的密碼等)時(shí),不能明文傳輸,需要加密。
b) 后臺(tái)打日志要求對于敏感信息不能打出,或者進(jìn)行加星號脫敏后打出,具體有:
1) 身份證號,用戶密碼(含加密后),用戶手機(jī)號碼,用戶姓名,銀行卡號
2) 身份證號碼脫敏字段為生日時(shí),生日在日志中不能打出
4、性能層面:
a) 接口響應(yīng)時(shí)間: 接口處理數(shù)據(jù)的時(shí)間也是測試需要關(guān)注的一個(gè)點(diǎn)。牽扯到內(nèi)部就是算法與代碼的優(yōu)化
b) 接口數(shù)據(jù)包大小:接口傳遞的數(shù)據(jù)包大小也需要關(guān)注,特別是返回給前端的接口,要把不同接口數(shù)據(jù)包大小需要做限制。
c) 并發(fā)承載能力:多用戶并發(fā)時(shí)接口可以承載合同中的并發(fā)量。
