接口测试必要性
什么是接口?
? ? ? 我們訪問一個網(wǎng)站的時候 網(wǎng)站的信息是在數(shù)據(jù)庫中存在的,但是系統(tǒng)不會把訪問數(shù)據(jù)庫的權(quán)限給我們,只能給我們提供一個接口 供我們訪問。其實(shí)接口就是我們從數(shù)據(jù)庫中取數(shù)據(jù)或者插入數(shù)據(jù)。
? ? ? 接口分為系統(tǒng)內(nèi)部接口和外部接口:內(nèi)部接口就是系統(tǒng)內(nèi)模塊和模塊之間交互的接口,外部接口就是系統(tǒng)和系統(tǒng)之間交互的接口。另外一點(diǎn) 前端和后端的交互也是通過接口。
?
什么是接口測試呢?
接口測試就是比功能測試還簡單的功能測試,區(qū)別就是功能測試是在頁面上點(diǎn)點(diǎn)點(diǎn),而接口測試就是需要開發(fā)人員給出接口文檔 接口文檔中包含:url 、請求方式、請求參數(shù)。我們可以借助工具來進(jìn)行測試。
其中最常用的接口請求方式就是 ?get 、post、json 等。
如果是get請求 不需要借助任何工具,直接在瀏覽器中輸入url按照url?參數(shù)=值&參數(shù)=值的形式就可以就可以
http://api.nnzhp.cn/api/user/stu_info?stu_name=小黑&sex=男
?
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)告
?
接口用例寫法與設(shè)計(jì)
接口用例包含:項(xiàng)目、模塊、用例id、用例描述、請求url、請求方式、請求數(shù)據(jù)、預(yù)期結(jié)果、請求報(bào)文、返回報(bào)文。
接口用例設(shè)計(jì):
1.基本功能測試就是設(shè)計(jì)出符合正常業(yè)務(wù)場景的用例
2.邊界值分析:覆蓋所有必選參數(shù)、參數(shù)有無或者null、參數(shù)組合在一起、參數(shù)的個數(shù)、輸入?yún)?shù)的順序、參數(shù)數(shù)值大小、參數(shù)中包含特殊字符
3.冪等級測試(假如登錄接口 ?我連續(xù)點(diǎn)擊登錄會提示什么)
4.并發(fā)測試
5.事務(wù)性測試
6.大數(shù)據(jù)量測試
7.環(huán)境異常測試
基本上設(shè)計(jì)用例的時候考慮到上面七個點(diǎn)基本就可以了。
?
執(zhí)行接口測試用例需要注意以下幾點(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)賬功能,從一個賬戶扣款,另一個要增加相應(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)??????? 前端某個操作涉及后臺DB多張表時,每張表都要檢驗(yàn)數(shù)據(jù)正確性。
3、安全層面:
a)???????? 后端接口返回給前端的數(shù)據(jù)包含敏感信息(如:姓名、身份證號、卡號、手機(jī)號、加密后的密碼等)時,不能明文傳輸,需要加密。
b)??????? 后臺打日志要求對于敏感信息不能打出,或者進(jìn)行加星號脫敏后打出,具體有:
1)????????? 身份證號,用戶密碼(含加密后),用戶手機(jī)號碼,用戶姓名,銀行卡號
2)????????? 身份證號碼脫敏字段為生日時,生日在日志中不能打出
?
4、性能層面:
a)???????? 接口響應(yīng)時間:? 接口處理數(shù)據(jù)的時間也是測試需要關(guān)注的一個點(diǎn)。牽扯到內(nèi)部就是算法與代碼的優(yōu)化
b)??????? 接口數(shù)據(jù)包大小:接口傳遞的數(shù)據(jù)包大小也需要關(guān)注,特別是返回給前端的接口,要把不同接口數(shù)據(jù)包大小需要做限制。
c)???????? 并發(fā)承載能力:多用戶并發(fā)時接口可以承載合同中的并發(fā)量。
以上信息參考了老師的上課講的資料和文檔。
?
?
總結(jié)
- 上一篇: FreeSql与SqlSugar性能测试
- 下一篇: MySQL zip版本安装说明