1.接口測試用例設計簡介
我們對系統的需求分析完成之后,即可設計對應的接口測試用例,然后用接口測試用例進行接口測試。接口測試用例的設計也需要用到黑盒測試方法,其與功能測試用例設計的方法類似,接口測試用例設計中還需要增加與接口特性相關的測試用例。
2.接口測試思路
正式設計接口測試用例之前,需要梳理一下接口測試的思路,思維導圖如圖6-32所示。
接下來,介紹幾個思維導圖中需要關注的點。
(1)基本功能流程測試
基本功能流程測試首先需要執行冒煙測試,把系統最基本的功能“走通”。冒煙測試決定系統的“提測”是否成功,如果系統通過冒煙測試,才會進入到詳細的測試階段;如果冒煙測試不通過,需要把系統程序退回給開發人員,開發人員修改程序之后重新“提測”。冒煙測試通過之后,對系統進行正常流程的覆蓋測試,測試的粒度會比冒煙測試更細一些,覆蓋系統的一些業務邏輯分支。
?(2)基于輸入域的測試
因為發出接口請求需要帶請求參數,所以測試人員會涉及關于請求參數的各種接口測試用例設計。關于請求參數的接口測試用例的設計需要考慮下面這些方面。
- 邊界值測試
對于有范圍要求的參數,需要綜合等價類和邊界值的方法設計接口測試用例。邊界值選擇上點和離點即可,要覆蓋到有效等價類和無效等價類。
- 特殊字符校驗
很多請求參數會要求不能包含特殊字符,對于有這類要求的參數字段,需要單獨設計包含特殊字符的接口測試用例。
- 參數類型校驗
有一些參數還會對傳參值的類型有要求,例如,只能包含英文、數字,或者只能包含整數類型等。對于這種類型有要求的參數字段,也要單獨設計接口測試用例,或設計一些反向接口測試用例。
- 必選參數校驗
在接口中有必填的參數,也有選填的參數,對于每一個必填參數,都要設計一個參數為空的接口測試用例來驗證參數的必填性。
- 組合參數校驗
對于有選填參數的接口來說,需要對各種參數的不同組合場景進行驗證。例如,值傳遞選填參數,或者對于必填參數和不同數量的選填參數做組合,對于這些選項參數的情況可以使用判定表的方法進行接口測試用例的設計。
- 排重邏輯
在接口測試中,如果接口中有的參數字段要求不能重復,那么需要對它進行排重測試,用重復請求相同的參數進行測試,驗證服務端的處理邏輯是不是正確。
- 接口冪等性
冪等是指任意多次執行接口測試所產生的影響均與一次執行接口測試產生的影響相同。保證接口的冪等性是非常重要的,尤其是涉及資金的系統,如銀行、電商等,在這些系統中,對用戶重復提交請求,或者網絡重發,系統重試等場景,都需要設計接口測試用例來驗證接口的冪等性。
(3)線性安全測試
線程安全測試包含了并發測試和分布式測試。
分布式是為了解決單個物理服務器容量和性能瓶頸問題而采用的一種優化手段。分布式的實現有兩種形式。
- 水平擴展:當一臺服務器 “扛” 不住大的網絡流量時,就通過添加服務器的方式,將流量平分到所有服務器上,所有機器都可以提供用戶的請求服務。
- 垂直拆分:前端用戶有多重查詢需求時,一臺服務器 “扛” 不住用戶大的請求,解決這個問題的方式是,可以將不同的需求分發到不同的服務器上。
相對于分布式測試,并發測試在解決的問題上會集中一些,它的測試重點是測試系統同時有多少用戶量,比如在線直播服務時有上萬人觀看。
并發測試可以通過分布式技術來實現,將并發流量分到不同的物理服務器上。但除此之外,還可以有很多其他優化并發的手段,比如使用緩存系統,還可以使用多線程技術將一臺服務器的服務能力最大化。
并發場景的測試中,測試的是同一個接口,參數值全部一樣。同時發送請求多次,結果只有一條請求成功,其他請求失敗。
分布式場景的測試中,測試的是不同機器,針對的是同一個接口,參數值全部一樣。同時發送請求多次,結果只有一條請求成功,其他請求失敗。
(4)故障注入法
故障注入測試需要測試人員故意針對系統制造有故障的場景,用以測試系統的健壯性。
如果產品中用到了Redis,就需要對Redis做一些故障降級測試。Resis一般會放在數據庫前面,用來做高速緩存。
我們進行Redis故障注入測試時需要開發人員配合先清空Redis數據,然后向系統發送請求,“擊穿” Redis,從DB(數據庫)中獲取正常的數據(并能回寫到Redis中)。然后開發人員配合啟動制造Redis數據恢復功能,測試人員可以從Redis中獲取正確的數據。其中還需要開發人員配合制造Redis崩潰場景,在Redis崩潰場景下測試人員向系統發送請求,看是否能從DB中獲取到正常的數據。
除了對Redis測試之外,我們還需要進行系統服務故障轉移測試,如數據庫故障測試與接口故障測試。
在進行數據庫故障時,開發人員配合制造數據庫數據丟失場景,啟動數據恢復策略,測試人員測試系統在規定時間內數據是否可以恢復;開發人員配合制造數據庫崩潰場景,測試人員測試數據庫多活策略是否啟動,保證系統功能不收影響。
在進行接口故障測試時,開發人員配合接口服務重啟,測試人員測試集群負載是否自動重啟實例、所有請求無異常;開發人員配合制造集群崩潰場景,測試人員測試系統是否返回對應的錯誤信息,系統內部服務是否有重試機制。
同時,在這我為大家準備了一份軟件測試視頻教程(含面試、接口、自動化、性能測試等),就在下方,需要的可以直接去觀看。
【2025最新版】字節大牛講的最全最細的自動化測試全套教程!永久白嫖,拿走不謝,全程干貨無廢話!逼自己15天內學完,從軟件測試基礎到項目實戰一套全通關!