超詳細的接口測試

本文主要分為兩個部分:

第一部分:主要從問題出發,引入接口測試的相關內容并與前端測試進行簡單對比,總結兩者之前的區別與聯系。但該部分只交代了怎么做和如何做?并沒有解釋為什么要做?

第二部分:主要介紹為什么要做接口測試,并簡單總結接口持續集成和接口質量評估相關內容。

在這我為大家準備了一份軟件測試視頻教程(含面試、接口、自動化、性能測試等),就在下方,需要的可以直接去觀看,也可以直接點擊文末小卡片免費領取資料文檔

軟件測試視頻教程觀看處:

軟件測試工程師大忌!盲目自學軟件測試真的會毀終生,能救一個是一個......

第一部分

首先,在做接口測試的過程中,經常有后端開發會問:

后端接口都測試什么?怎么測的?

后端接口測試一遍 ,前端也測試一遍,是不是重復測試了?

于是,為了向開發解釋上述問題,普及基本的測試常識,特意梳理了接口測試的相關內容以及其與前端測試的區別,使開發團隊與測試團隊在測試這件上達成基本的共識,提高團隊協作效率,從而更好的保證產品質量。

然后,我們試著回答上面的問題:

問題1.1 后端接口都測試什么?

回答這個問題,我們可以從接口測試活動內容的角度下手,看一下面這張圖,基本反應了當前我們項目后端接口測試的主要內容:

問題1.2 我們怎么做接口測試?

由于我們項目前后端調用主要是基于http協議的接口,所以測試接口時主要是通過工具或代碼模擬http請求的發送與接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。

問題2、后端接口測試一遍 ,前端也測試一遍,是不是重復測試了?

回答這個問題,我們可以直接對比接口測試和app端測試活動的內容,如下圖為app測試時需要覆蓋或考慮內容:

從上面這兩張圖對比可以看出,兩個測試活動中相同的部分有功能測試、邊界分析測試和性能測試,其它部分由于各自特性或關注點不同需要進行特殊的測試,在此不做討論。接下來我們針對以上三部分相同的內容再進行分析:

1、基本功能測試

由于是針對基本業務功能進行測試,所以這部分是兩種測試重合度最高的一塊,開發同學通常所指的也主要是這部分的內容。

2、邊界分析測試

在基本功能測試的基礎上考慮輸入輸出的邊界條件,這部分內容也會有重復的部分(比如業務規則的邊界)。但是,前端的輸入輸出很多時候都是提供固守的值讓用戶選擇(如下拉框),在這種情況下測試的邊界范圍就非常有限,但接口測試就不存在這方面的限制,相對來說接口可以覆蓋的范圍更廣,同樣的,接口出現問題的概率也更高。

?3、性能測試

這個比較容易區分,雖然都需要做性能測試,但關注點確大不相同。App端性能主要關注與手機相關的特性,如手機cpu、內存、流量、fps等。而接口性能主要關注接口響應時間、并發、服務端資源的使用情況等。兩種測試時的策略和方法都有很大區別,所以這部分內容是需要分開單獨進行測試的,理論上來說這也是不同的部分。

綜論:

1、接口測試和app測試的活動有部分重復的內容,主要集中在業務功能測試方面。除此之外,針對各自特性的測試都不一樣,需要分別進行有針對性的測試,才能確保整個產品的質量。

2、接口測試可以關注于服務器邏輯驗證,而UI測試可以關注于頁面展示邏輯及界面前端與服務器集成驗證

第二部分

1、什么是接口測試?

接口測試是測試系統組件間接口的一種測試。接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。

2、為什么要做接口測試?

a) 如今的系統復雜度不斷上升,傳統的測試方法成本急劇增加且測試效率大幅下降,接口測試可以提供這種情況下的解決方案。

b) ?接口測試相對容易實現自動化持續集成,且相對UI自動化也比較穩定,可以減少人工回歸測試人力成本與時間,縮短測試周期,支持后端快速發版需求。接口持續集成是為什么能低成本高收益的根源。

c) ? 現在很多系統前后端架構是分離的,從安全層面來說:

1、只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易), 需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。

2、前后端傳輸、日志打印等信息是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等。

3、接口測試持續集成

對接口測試而言,持續集成自動化是核心內容,通過持自動化的手段我們才能做到低成本高收益。目前我們已經實現了接口自動化,主要應用于回歸階段,后續還需要加強自動化的程度,包括但不限于下面的內容:

a) 流程方面:在回歸階段加強接口異常場景的覆蓋度,并逐步向系統測試,冒煙測試階段延伸,最終達到全流程自動化。

b) 結果展示:更加豐富的結果展示、趨勢分析,質量統計和分析等

c) 問題定位:報錯信息、日志更精準,方便問題復現與定位。

d) 結果校驗:加強自動化校驗能力,如數據庫信息校驗。

e) 代碼覆蓋率:不斷嘗試由目前的黑盒向白盒下探,提高代碼覆蓋率。

f) 性能需求:完善性能測試體系,通過自動化的手段監控接口性能指標是否正常。

4、接口測試質量評估標準

a) 業務功能覆蓋是否完整

b) 業務規則覆蓋是否完整

c) 參數驗證是否達到要求(邊界、業務規則)

d) 接口異常場景覆蓋是否完整

e) 接口覆蓋率是否達到要求

f) ?代碼覆蓋率是否達到要求

g) 性能指標是否滿足要求

h) 安全指標是否滿足要求

寫在最后

PS:這里分享一套軟件測試的自學教程合集。對于在測試行業發展的小伙伴們來說應該會很有幫助。除了基礎入門的資源,博主也收集不少進階自動化的資源,從理論到實戰,知行合一才能真正的掌握。全套內容已經打包到網盤,內容總量接近500個G。【點擊文末小卡片免費領取】

這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業,一定要提升技術功底。

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

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

相關文章

ShellCode漏洞

ShellCode漏洞 可以查看如下網址: https://www.cnblogs.com/kakadewo/p/12996878.html 定義: shellcode是一段用于利用軟件漏洞而執行的代碼,shellcode為16進制之機械碼,以其經常讓攻擊者獲得shell而得名。shellcode常常使用機…

老鳥總結,軟件測試工程師職業發展規劃路線,入門到沖擊大廠...

目錄:導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結(尾部小驚喜) 前言 1、測試工程師發展…

YOCTO 下載repo工具失敗解決辦法

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repocp repo ~/binchmod ax ~/bin/repo如果使用時報錯, 切換ubuntu 到 python3 版本。gedit repo 修改repo默認鏈接地址:REPO_URL "https://gerrit.googlesource.com/git-repo"…

Spring AOP-面向切面編程概念

Spring AOP-面向切面編程概念 AOP(面向切面編程)是編程范式的一種,它允許程序員將橫切關注點(cross-cutting concerns)模塊化。在面向切面編程中,這些橫切關注點通常體現為在多個點重復出現的代碼&#xf…

Android設計模式--適配器模式

至誠之道,可以前知 一,定義 適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 適配器模式在我們的開發中使用率極高,ListView,GridView&am…

面試cast:reinterpret_cast/const_cast/static_cast/dynamic_cast

目錄 1. cast 2. reinterpret_cast 3. const_cast 3.1 加上const的情況 3.2 去掉const的情況 4. static_cast 4.1 基本類型之間的轉換 4.2 void指針轉換為任意基本類型的指針 4.3 子類和父類之間的轉換 5. dynamic_cast 5.1 RTTI(Run-time Type Identification) 1.…

Selenium實現多頁面切換

當使用 Selenium 進行自動化測試或爬取數據時,有時需要處理多個頁面之間的切換。以下是一些可能需要多頁面切換的情況: 1、打開新窗口/頁面: 在當前頁面上點擊鏈接、按鈕或執行某些操作時,可能會打開一個新的窗口或頁面。此時&a…

【element優化經驗】怎么讓element-ui中表單多語言切換排版不亂

目錄 前言: 痛點: 1.左對齊,右對齊在中文和外語情況下字數不同,固定寬度會使名稱換行,不在整行對齊,影響美觀。 2.如果名稱和輸入框不在一行,會使頁面越來越長 3.label-width值給變量&#…

隨筆記錄-springmvc_ResourceHandlerRegistry+ResourceHttpRequestHandler

環境:springboot-2.7.5 配置文件配置靜態資源映射 springboot配置靜態資源映射方式是通過 WebMvcAutoConfiguration 實現的 spring: # resources: # # 自springboot 2.5.5之后,該屬性已經被廢棄,使用spring.web.resources.static-locat…

爬蟲逆向你應該懂得Javascript知識

背景 大家在學習爬蟲逆向的時候,一般都會涉及到對js源文件進行代碼扣去,但是有的時候,你最好有js基礎,能發現加密或者解密在那個位置,或者是能用python改寫js代碼,這就對個人的Javascript的能力有一定要求…

Switch的使用及其注意事項

注意第五點要看清,case執行完后匹配沒有成功,如過有Default,將會執行Default,如果有case在Default之后,而且Default沒有break語句,那么將會繼續執行case的語句,此時case中的常量表達式只起語句標…

【Skynet 入門實戰練習】游戲模塊劃分 | 基礎功能模塊 | timer 定時器模塊 | logger 日志服務模塊

文章目錄 游戲模塊基礎功能模塊定時器模塊日志模塊通用模塊 游戲模塊 游戲從邏輯方面可以分為下面幾個模塊: 注冊和登錄網絡協議數據庫玩法邏輯其他通用模塊 除了邏輯劃分,還有幾個重要的工具類模塊: Excel 配置導表工具GM 指令測試機器人…

系列一、Spring整合MyBatis不忽略mapper接口同目錄的xxxMapper.xml

一、概述 默認情況下maven要求我們將xml配置、properties配置等都放在resources目錄下,如果我們強行將其放在java目錄,即將xxxMapper.xml和xxxMapper接口放在同一個目錄下,那么默認情況下maven打包時會將這個xxxMapper.xml文件忽略掉&#xf…

【辦公常識_1】寫好的代碼如何上傳?使用svn commit

首先找到對應的目錄 找到文件之后點擊SVN Commit

【標注數據】labelme的安裝與使用

這里寫目錄標題 下載標數據 下載 標數據 打開自動保存 創建矩形

NSGA-II求解微電網多目標優化調度(MATLAB)

一、NSGA-II簡介 NSGA-Ⅱ算法是Kalyanmoy Deb等人于 2002年在 NSGA 的基礎上提出的,它比 NSGA算法更加優越:它采用了快速非支配排序算法,計算復雜度比 NSGA 大大的降低;采用了擁擠度和擁擠度比較算子,代替了需要指定的…

Design Guidelines for 100 Gbps

文章目錄 Stratix V GT Transceiver ChannelsCFP2 Host Connector Assembly and PinoutStratix V GT to CFP2 Interface Layout DesignBoard Stack Up DimensionsExample Design Channel PerformanceSimulation Results for Stratix V GT to CFP2 Connector Layout Design Desi…

特征工程完整指南 - 第二部分

蘇米特班迪帕迪亞 照片由Dan Cristian P?dure?在Unsplash上拍攝 一、說明 DATA,通常被稱為原油,需要經過加工和清潔才能有效地用于各種用途。正如我們不直接使用來自其來源的石油一樣,數據也經過類似的處理以提取其真正價值。 二、特征選…

LabVIEW中如何達到NI SMU最大采樣率

LabVIEW中如何達到NI SMU最大采樣率 NISMU的數字化儀功能對于捕獲SMU詳細的瞬態響應特性或表征待測設備(DUT)響應(例如線性調整率和負載調整率)至關重要。沒有此功能,將需要一個外部示波器。 例如,假設在…