【接口測試系列】- 前端交互測試和后端邏輯測試


前端頁面與后端代碼之間的交互測試,可以理解為接口功能測試的一個子集。

測試准備

在進行交互測試前,首先要對前端功能有明確的認知,能夠明確區分: 

  • 什么功能屬於前端頁面邏輯功能 

  • 什么功能又屬於前端與后端交互功能 

  • 前端功能與后端是通過什么接口方式進行交互 

  • 前、后端,雙方有什么樣約束

在這里提到了約束這個概念,在實際項目研發過程中,功能測試階段所產生 的 bug,有很大一方面是由於前、后端溝通不徹底,需求確認模糊導致。在進入研發前,雙方將各自 后續由於 bug 導致的反工工作量。

測試方法

可以使用抓包工具來進行交互層面測試,查看每個交互功能,對應的接口是否正確 (包含請求頭、請求參數、響應以及其他約束項),確保前端按照后端的要求正確地進行了調用。

在交互過程中,針對一個接口也會有多個場景,前端會根據不同的入參來調 用不同的場景,根據不同響應結果, 進行響應數據的改寫,來獲得不同響應,驗證不同響應下前端的展示效果。在這里我們也可以使用一些 不同場景的交互測試。

推薦 Mock 工具: 

  • moco 框架:https://github.com/dreamhead/moco 

  • easy-mock: https://github.com/easy 

  • Metersphere 一站式測試平台上也可以定義 

后端邏輯測試 

接口后端邏輯測試依然遵循“輸入—處理—輸出”這樣的模式。用戶輸入一串數據,然后讓這個接口或者讓這個后台功能來處理,檢查輸出結果跟期望是否一 致。

接口測試用例設計應該滿足需求文檔,且對異常場景進行友好處理;且測試 這個接口是否安裝接口文檔進行開發

測試用例設計思路 

  • 從輸入參數進行考慮設計 

1) 優先級-針對所有接口 

1、暴露給其他系統、第三方調用的接口

2、系統內部調用的核心功能接口

3、系統內部調用的非核心功能接口 

2)優先級-針對單個接口

1、正向測試用例優先,逆向測試用例次之(通常情況下是這樣);

2、是否需要滿足前提條件 > 是否攜帶默認值參數 > 參數是否必填 > 參數之間是否存在關聯 > 參數數據類型限制校驗 > 參數數據類型自身的數據范圍值 限制校驗。

3)設計分析

從接口測試后端業務邏輯來講,設計接口測試用例需要考慮以下幾方面:

1、是否滿足前提條件 有的接口需要首先滿足一定條件,才可成功獲取數據。最常見的就是需 要用戶登錄信息的接口(用戶 token) 逆向用例:設計不滿足前置條件的用例。

2、是否攜帶默認值參數 正向測試用例:存在默認值的參數都不填寫、不傳參,必填參數都填寫正確並且存在正 確的常規值,這方面考慮設計測試用例。

3、業務邏輯、功能需求 這個環節需要根據具體的業務需求,結果接口定義文檔,可設計出多條 正向用例和逆向用例。

4、參數是否必填 針對每個必填參數,設計一條或多條參數值為空的逆向測試用例。

5、參數之間是否存在關聯 可根據參數之間的相互關聯關系設計一條或多條用例。

6、參數數據類型限制 針對每個參數類型設計與定義的類型不符的逆向測試用例。

7、參數自身的數據范圍值限制校驗 針對所有參數,設計每個參數在數據范圍內為最大或者最小的正向測試用例;

針對所有參數,設計一條或者多條參數值超過或者小於數據范圍的逆向 測試用例;

總結一下,如果以上幾個方面考慮全面的話,基本可覆蓋以下三點:

a、主流程測試用例:正常的主流程業務需求校驗

b、分支流程測試用例:正常的分支流程需求校驗

c、異常流程測試用例:異常業務場景的容錯校驗

  • 從輸出參數進行考慮設計 

1、輸出結構是否與接口文檔定義的一致 

2、輸出的各個字段類型是否與接口文檔定義的一致  

3、輸出的各個字段的值是否符合邏輯且值正確 

測試環境

進行接口測試之前首先需要與開發確認好測試環境,通常情況下,需要在三 個環境進行測試:測試環境、准生產環境及生產環境。

為了方便快捷切換接口測試環境的 host 指向,我們可借助以下工具進行切 換:SwitchHosts、Nohost、postman 等。

測試方式

  • 手工測試

手工測試就是借助瀏覽器或者部分測試工具(postman、Jemter 等)手動執 行測試用例的過程。針對新開發接口建議首先進行全面的手工測試后再將部分可 重復執行用例加入自動化測試。

  • 自動化測試

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

接口自動化測試同樣需要有需求分析、用例設計,依據用例設計使用 python 或者 java 等語言結合框架,編寫自動化測試腳本,實現接口自動化測試、自動 執行及自動發送測試報告等環節。

一個好的接口自動化測試框架應該涵蓋以下幾點:

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

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

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

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

其他關注點

以下這部分測試同業務邏輯測試同等重要,甚至從某種意義上講,比業務邏 輯測試更加重要,測試過程中不容忽視。

看完這篇內容后,相信以下兩件事,也會對你的個人提升有所幫助:

 - 將來的你定會感謝現在拼命努力的自己 

 

> > > 學習路線+測試實用干貨精選匯總,請關注我的公眾號,公眾號長期做「有價值的輸出」是最低標准,感謝您的閱讀。

> > > 一起探討交流,共同學習軟件測試技術、進測試Q群,里面有我們收集的配套教程和技術文檔提供給自學的伙伴。請點此處查看公告處加入社區方式,(←可點擊查看公告處)

> > > 薦語:與其花時間吃點點點苦,不如學學自動化,提高薪資然后摸魚,不香么?

📘 往期技術文章推薦

測試開發技能(1):持續集成這樣做,App自動化測試效率提高50%

測試開發技能(2):性能測試知識學習路線(看看這篇,好好學習)

測試開發技能(3):十分鍾弄懂最快的APP自動化工具uiautomator2 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM