更新時(shí)間:2020-08-10 來源:黑馬程序員 瀏覽量:
當(dāng)我們拿到一個(gè)接口,怎么才能設(shè)計(jì)出更好的測(cè)試用例呢?從大的方面我們至少要考慮到以下三個(gè)方面。
第一:功能測(cè)試
第二:性能測(cè)試
第三:安全性測(cè)試
在功能方面,我們要更多考慮的是如何通過不同的輸入覆蓋不同的業(yè)務(wù)邏輯。而這個(gè)業(yè)務(wù)邏輯也可以理解為代碼的每一個(gè)分支語句,所以,我們的測(cè)試就變?yōu)槿绾瓮ㄟ^輸入不同的參數(shù),然后讓代碼盡可能的執(zhí)行到每一個(gè)分支。 但是我們又不是做白盒測(cè)試,如何才知道覆蓋了不同的分支呢?這里面除了用到一些測(cè)試方法外,還需要對(duì)業(yè)務(wù)有足夠的了解,和開發(fā)不斷確認(rèn)其實(shí)現(xiàn)邏輯 。簡(jiǎn)單的來說就是從:測(cè)試方法設(shè)計(jì)和發(fā)散測(cè)試方面去考慮。
1.測(cè)試方法設(shè)計(jì):可分為正向測(cè)試和反向測(cè)試
? 正向用例:
只輸入所有必填參數(shù),驗(yàn)證其結(jié)果;
輸入所有的參數(shù),包括非必填參數(shù),驗(yàn)證其結(jié)果;
所有的必填參數(shù)和可選參數(shù)的組合,驗(yàn)證其結(jié)果。
? 反向用例:
從請(qǐng)求參數(shù)考慮:缺少參數(shù),多參,無參,參數(shù)錯(cuò)誤等;
從輸入數(shù)據(jù)考慮:數(shù)據(jù)類型錯(cuò)誤,數(shù)據(jù)為空,數(shù)據(jù)越界。
2.發(fā)散測(cè)試:考慮完所有參數(shù)的組合外,為了避免遺漏,我們還的拋開用例,從不同角度去考慮,以下兩個(gè)方面就可以值得嘗試。
? 和開發(fā)確認(rèn)實(shí)現(xiàn)邏輯:在和開發(fā)確認(rèn)實(shí)現(xiàn)邏輯的時(shí)候,盡可能的問的詳細(xì)一些,問的過程中,也可以設(shè)定一些問題,比如可以問如果輸入這樣的參數(shù),那么他會(huì)有什么的輸出呢?最后把你沒有執(zhí)行到的邏輯列舉出來,通過設(shè)計(jì)一些數(shù)據(jù)進(jìn)行覆蓋 ;
? 深入的了解業(yè)務(wù):對(duì)業(yè)務(wù)再次熟悉,盡可能的確認(rèn)業(yè)務(wù)中的每一個(gè)細(xì)節(jié),然后根據(jù)這些細(xì)節(jié)考慮接口是否有對(duì)應(yīng)的實(shí)現(xiàn),并嘗試著進(jìn)行測(cè)試。
性能測(cè)試主要從倆個(gè)方面去考慮,分別是單接口場(chǎng)景和放在某個(gè)場(chǎng)景中的性能測(cè)試。
單接口場(chǎng)景:
? 針對(duì)被測(cè)接口進(jìn)行性能測(cè)試,關(guān)注其是否滿足性能需求。
? 對(duì)被測(cè)接口不斷的增加壓力,關(guān)注其UV用戶數(shù)和TPS的曲線圖
? 針對(duì)被測(cè)接口進(jìn)行并發(fā)測(cè)試,關(guān)注其響應(yīng)時(shí)間
業(yè)務(wù)場(chǎng)景:就是基于某一個(gè)用戶經(jīng)常使用的場(chǎng)景進(jìn)行規(guī)劃,該場(chǎng)景中可能包含了多個(gè)接口,每個(gè)接口只是該場(chǎng)景中某一個(gè)業(yè)務(wù),所占的用戶量也只是一部分 。針對(duì)業(yè)務(wù)場(chǎng)景的性能測(cè)試,更多反應(yīng)實(shí)際業(yè)務(wù)的性能情況。
對(duì)于我們非專業(yè)的安全測(cè)試人員來說,我們更多的是關(guān)注業(yè)務(wù)方面的安全測(cè)試,針對(duì)接口的業(yè)務(wù)安全測(cè)試可以進(jìn)行如下考慮
? 接口是否使用了HTTPS協(xié)議
? 接口的請(qǐng)求數(shù)據(jù)是否加密處理
? 保存到庫(kù)的關(guān)鍵信息是否做過加密處理
? 是否對(duì)一些常用工具的請(qǐng)求做了限制
? 接口是否對(duì)同一IP的訪問次數(shù)做了限制
最后,當(dāng)我們?cè)倌玫揭粋€(gè)接口的時(shí)候,就可以嘗試著從以上三個(gè)方面進(jìn)行用例的設(shè)計(jì)了。
猜你喜歡:
怎樣設(shè)計(jì)出優(yōu)秀的測(cè)試用例 ,并且要用什么思路寫出來?