軟件測試之接口測試用例設計

1.接口測試用例設計簡介

我們對系統的需求分析完成之后,即可設計對應的接口測試用例,然后用接口測試用例進行接口測試。接口測試用例的設計也需要用到黑盒測試方法,其與功能測試用例設計的方法類似,接口測試用例設計中還需要增加與接口特性相關的測試用例。

2.接口測試思路

正式設計接口測試用例之前,需要梳理一下接口測試的思路,思維導圖如圖6-32所示。

接下來,介紹幾個思維導圖中需要關注的點。

(1)基本功能流程測試

基本功能流程測試首先需要執行冒煙測試,把系統最基本的功能“走通”。冒煙測試決定系統的“提測”是否成功,如果系統通過冒煙測試,才會進入到詳細的測試階段;如果冒煙測試不通過,需要把系統程序退回給開發人員,開發人員修改程序之后重新“提測”。冒煙測試通過之后,對系統進行正常流程的覆蓋測試,測試的粒度會比冒煙測試更細一些,覆蓋系統的一些業務邏輯分支。

?(2)基于輸入域的測試

因為發出接口請求需要帶請求參數,所以測試人員會涉及關于請求參數的各種接口測試用例設計。關于請求參數的接口測試用例的設計需要考慮下面這些方面。

  • 邊界值測試

對于有范圍要求的參數,需要綜合等價類和邊界值的方法設計接口測試用例。邊界值選擇上點和離點即可,要覆蓋到有效等價類和無效等價類。

  • 特殊字符校驗

很多請求參數會要求不能包含特殊字符,對于有這類要求的參數字段,需要單獨設計包含特殊字符的接口測試用例。

  • 參數類型校驗

有一些參數還會對傳參值的類型有要求,例如,只能包含英文、數字,或者只能包含整數類型等。對于這種類型有要求的參數字段,也要單獨設計接口測試用例,或設計一些反向接口測試用例。

  • 必選參數校驗

在接口中有必填的參數,也有選填的參數,對于每一個必填參數,都要設計一個參數為空的接口測試用例來驗證參數的必填性。

  • 組合參數校驗

對于有選填參數的接口來說,需要對各種參數的不同組合場景進行驗證。例如,值傳遞選填參數,或者對于必填參數和不同數量的選填參數做組合,對于這些選項參數的情況可以使用判定表的方法進行接口測試用例的設計。

  • 排重邏輯

在接口測試中,如果接口中有的參數字段要求不能重復,那么需要對它進行排重測試,用重復請求相同的參數進行測試,驗證服務端的處理邏輯是不是正確。

  • 接口冪等性

冪等是指任意多次執行接口測試所產生的影響均與一次執行接口測試產生的影響相同。保證接口的冪等性是非常重要的,尤其是涉及資金的系統,如銀行、電商等,在這些系統中,對用戶重復提交請求,或者網絡重發,系統重試等場景,都需要設計接口測試用例來驗證接口的冪等性。

(3)線性安全測試

線程安全測試包含了并發測試和分布式測試。

分布式是為了解決單個物理服務器容量和性能瓶頸問題而采用的一種優化手段。分布式的實現有兩種形式。

  • 水平擴展:當一臺服務器 “扛” 不住大的網絡流量時,就通過添加服務器的方式,將流量平分到所有服務器上,所有機器都可以提供用戶的請求服務。
  • 垂直拆分:前端用戶有多重查詢需求時,一臺服務器 “扛” 不住用戶大的請求,解決這個問題的方式是,可以將不同的需求分發到不同的服務器上。

相對于分布式測試,并發測試在解決的問題上會集中一些,它的測試重點是測試系統同時有多少用戶量,比如在線直播服務時有上萬人觀看。

并發測試可以通過分布式技術來實現,將并發流量分到不同的物理服務器上。但除此之外,還可以有很多其他優化并發的手段,比如使用緩存系統,還可以使用多線程技術將一臺服務器的服務能力最大化。

并發場景的測試中,測試的是同一個接口,參數值全部一樣。同時發送請求多次,結果只有一條請求成功,其他請求失敗。

分布式場景的測試中,測試的是不同機器,針對的是同一個接口,參數值全部一樣。同時發送請求多次,結果只有一條請求成功,其他請求失敗。

(4)故障注入法

故障注入測試需要測試人員故意針對系統制造有故障的場景,用以測試系統的健壯性。

如果產品中用到了Redis,就需要對Redis做一些故障降級測試。Resis一般會放在數據庫前面,用來做高速緩存。

我們進行Redis故障注入測試時需要開發人員配合先清空Redis數據,然后向系統發送請求,“擊穿” Redis,從DB(數據庫)中獲取正常的數據(并能回寫到Redis中)。然后開發人員配合啟動制造Redis數據恢復功能,測試人員可以從Redis中獲取正確的數據。其中還需要開發人員配合制造Redis崩潰場景,在Redis崩潰場景下測試人員向系統發送請求,看是否能從DB中獲取到正常的數據。

除了對Redis測試之外,我們還需要進行系統服務故障轉移測試,如數據庫故障測試與接口故障測試。

在進行數據庫故障時,開發人員配合制造數據庫數據丟失場景,啟動數據恢復策略,測試人員測試系統在規定時間內數據是否可以恢復;開發人員配合制造數據庫崩潰場景,測試人員測試數據庫多活策略是否啟動,保證系統功能不收影響。

在進行接口故障測試時,開發人員配合接口服務重啟,測試人員測試集群負載是否自動重啟實例、所有請求無異常;開發人員配合制造集群崩潰場景,測試人員測試系統是否返回對應的錯誤信息,系統內部服務是否有重試機制。

同時,在這我為大家準備了一份軟件測試視頻教程(含面試、接口、自動化、性能測試等),就在下方,需要的可以直接去觀看。

【2025最新版】字節大牛講的最全最細的自動化測試全套教程!永久白嫖,拿走不謝,全程干貨無廢話!逼自己15天內學完,從軟件測試基礎到項目實戰一套全通關!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76932.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(2)VTK C++開發示例 --- 繪制多面錐體

文章目錄 1. 概述2. CMake鏈接VTK3. main.cpp文件4. 演示效果 更多精彩內容👉內容導航 👈👉VTK開發 👈 1. 概述 VTK C開發示例程序; 使用C 和VTK繪制一個多面錐體。 環境說明系統ubuntu22.04、windows11cmake3.22、3.2…

公司內部自建知識共享的方式分類、詳細步驟及表格總結,分為開源(對外公開)和閉源(僅限內部),以及公共(全員可訪問)和內部(特定團隊/項目組)四個維度

以下是公司內部自建知識共享的方式分類、詳細步驟及表格總結,分為開源(對外公開)和閉源(僅限內部),以及公共(全員可訪問)和內部(特定團隊/項目組)四個維度&am…

DeepSeek使用001:Word中配置DeepSeek AI的V3和R1模型

文章目錄 Word中配置DeepSeek大模型1、勾選開發工具2、信任中心設置3、添加DeepSeek-V3模型4、獲取API KEY5、添加DeepSeek-R1模型6、新建組7、測試使用 Word中配置DeepSeek大模型 1、勾選開發工具 打開【選項】 選擇【自定義功能區】 2、信任中心設置 打開【信任中心】&…

Spark-SQL核心編程語言

利用IDEA開發spark-SQL 創建spark-SQL測試代碼 自定義函數UDF 自定義聚合函數UDAF 強類型的 Dataset 和弱類型的 DataFrame 都提供了相關的聚合函數, 如 count(), countDistinct(),avg(),max(),min()。除此之外&…

從圖像“看出動作”

📘 第一部分:運動估計(Motion Estimation) 🧠 什么是運動估計? 簡單說: 👉 給你一段視頻,計算機要“看懂”里面什么東西動了、往哪動了、有多快。 比如: 一…

Spring Boot 使用 SMB 協議

2025/4/14 向全棧工程師邁進! 一、詳述SMB協議 SMB(Server Message Block)協議是一個網絡文件共享協議,它使得計算機可以在網絡中共享文件、打印機以及其他資源。SMB 主要用于 Windows 操作系統,但也有其他平臺&#…

Spring編程式事務(本地事務)

使用 TransactionTemplate等類和 API 手動管理事務,控制事務的新建、提交、回滾等過程 方式一:使用 TransactionTemplate(推薦方式) Service public class OrderService {private final TransactionTemplate transactionTemplat…

itext7 html2pdf 將html文本轉為pdf

1、將html轉為pdf需求分析 經常會看到爬蟲有這樣的需求,將某一個網站上的數據,獲取到了以后,進行分析,然后將需要的數據進行存儲,也有將html轉為pdf進行存儲,作為原始存檔,當然這里看具體的需求…

企業級低代碼平臺的架構范式轉型研究

在快速迭代的數字時代,低代碼平臺如同一股清流,悄然成為開發者們的新寵。 它利用直觀易用的拖拽式界面和豐富的預制組件,將應用程序的開發過程簡化到了前所未有的程度。通過封裝復雜的編程邏輯和提供強大的集成能力,低代碼平臺讓…

C++ | STL之list詳解:雙向鏈表的靈活操作與高效實踐

引言 std::list 是C STL中基于雙向鏈表實現的順序容器,擅長高效插入和刪除操作,尤其適用于頻繁修改中間元素的場景。與std::vector不同,std::list的內存非連續,但提供了穩定的迭代器和靈活的元素管理。本文將全面解析std::list的…

AI運算服務器工控機特點與應用

AI運算服務器工控機是專門針對工業環境設計的計算設備,結合了傳統工控機(工業控制計算機)的可靠性與AI服務器的強大算力,廣泛應用于智能制造、邊緣計算、機器視覺、自動化控制等領域。以下是其核心特點、應用場景及選型建議&#…

25/4/9 算法筆記 DBGAN+強化學習+遷移學習實現青光眼圖像去模糊1

整體實驗介紹 實驗主要是結合DBGAN對抗網絡強化學習增強遷移學習增強實現青光眼圖像去模糊。今天則是先完成了DBGAN板塊模型的訓練。 實驗背景介紹 青光眼的主要特征有: 視盤形態與杯盤比CDR:青光眼患者主要表現為視杯擴大,盤沿變窄。 視…

智能復盤自動化系統搭建指南—基于DeepSeek API與Apple日歷的整合實踐

一、系統架構設計 本方案通過iOS快捷指令實現日歷數據與AI分析的自動化交互,核心流程包含: 日歷事件管理 創建每日循環的"AI復盤"日歷事項實現當日備注信息的動態更新 數據處理模塊時間日志標準化處理多維度數據特征提取 AI交互層對接DeepSeek…

01 位運算

12days 章節結構 00 算法前導課-編程基礎(自學的視頻) 01 位運算的奇巧淫技 02 查找與排序(上) 03 數組、查找與排序(下) 04 多維數組與矩陣 05 字符串專題 06 基本數學問題 06 遞歸、DFS、剪枝、回溯等問題 07 貪心策…

HDFS Full Block Report超限導致性能下降的原因分析

文章目錄 前言發現問題失敗的為什么是FBR塊匯報頻率的變化為什么FBR會反復失敗HDFS性能下降導致Yarn負載變高的形式化分析理解線程理解IO Wait理解HDFS性能下降導致Yarn負載和使用率增高 引用 前言 我們的Yarn Cluster主要用來運行一批由Airflow定時調度的Spark Job&#xff0…

【Kubernetes基礎--Pod深入理解】--查閱筆記2

深入理解Pod 為什么要有個Pod1. 容器協作與資源共享2. 簡化調度和資源管理3. 設計模式支持 Pod 基本用法Pod 容器共享 VolumePod 的配置管理ConfigMap 概述創建 ConfigMap 資源對象在 Pod 中使用 ConfigMap使用 ConfigMap 的限制條件 為什么要有個Pod Pod 的引入并非技術冗余&…

Margin和Padding在WPF和CSS中的不同

CSS和WPF中 margin 與 padding 在方向上的規定基本一致,但在使用場景和一些細節上有所不同。 CSS - 方向規定: margin 和 padding 屬性可以分別指定上、右、下、左四個方向的值。例如 margin:10px 20px 30px 40px; 表示上外邊距為10px、右外邊距為20…

gravity`(控制 View 內部內容的對齊方式)

文章目錄 **1. 常用取值****示例** **2. layout_gravity(控制 View 在父容器中的對齊方式)****常用取值****示例** **3. gravity vs layout_gravity 對比****4. 注意事項****5. 總結** 作用對象:當前 View 的內部內容(如 TextView…

Go:使用共享變量實現并發

競態 在串行程序中,步驟執行順序由程序邏輯決定;而在有多個 goroutine 的并發程序中,不同 goroutine 的事件先后順序不確定,若無法確定兩個事件先后,它們就是并發的。若一個函數在并發調用時能正確工作,稱…

Vue3 SSR Serverless架構革命:彈性計算與量子加速

一、全維度Serverless SSR架構 1.1 蜂巢式彈性調度系統 1.2 冷啟動時間優化表 優化策略Node.js冷啟(ms)Deno冷啟(ms)Bun冷啟(ms)裸啟動1800960420預編譯二進制650380210內存快照預熱22016090WASM實例池15011075量子狀態預載453832 二、邊緣渲染協議升級 2.1 流式SSR響應協議…