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