什么是自動化測試框架?常用的自動化測試框架有哪些?

無論是在自動化測試實踐,還是日常交流中,經常聽到一個詞:框架。之前學習自動化測試的過程中,一直對“框架”這個詞知其然不知其所以然。

最近看了很多自動化相關的資料,加上自己的一些實踐,算是對“框架”有了一些理解,這篇博客,就聊聊自動化框架的一些事吧。。。

一、什么是框架

框架(framework)是一個框子——指其約束性,也是一個架子——指其支撐性。是一個基本概念上的結構,用于去解決或者處理復雜的問題。

在軟件工程中,框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法;

另一種定義認為,框架是可被應用開發者定制的應用骨架,前者是從應用方面而后者是從目的方面給出的定義。

上面的概念比較抽象,換另一個角度解釋:

1、框架本身一般不完整到可以解決特定問題;

2、框架天生就是為擴展而設計的;

3、框架里面可以為后續擴展的組件提供很多輔助性、支撐性的方便易用的工具,也就是說框架是配套了一些幫助解決某類問題的庫(libraries)或工具(tools)。

約束性:針對解決特定問題的軟件框架會首先定義問題的邊界,進而將相關的軟件組件約束在這個邊界內,保持框架在解決問題方面上的內聚性。

支撐性:框架本身不解決什么問題,但給了解決問題的相關組件一個組合底子,這個底子的科學性和易用性直接影響在此之上進一步開發的科學性和方便性。    

上面的2個對框架的解釋和定義,看起來也并沒有很簡單直白的說清楚什么是框架,下面是我的一些理解:

定義:為解決某些特定問題而約束邊界,支撐整個問題解決方案,配套了一些解決問題的組件而構成的工具

特定問題:什么問題?——自動化測試

約束邊界:為什么約束?——明確測試范圍和目的

解決方案:用什么方案解決問題?——編程語言+工具+其他

構成工具的組件:哪些組件?—— 用例、腳本、數據、日志、報告、通知

工具:特點是什么?—— 靈活性、可擴展性、高內聚低耦合

二、自動化測試

1、為什么要進行自動化測試?

①、黑盒測試回歸效率低

②、手動測試的偶然性和不確定性

③、回歸的覆蓋率不足

④、交付的產品質量無法保證,全靠評估

⑤、系統越復雜,問題越多

⑥、上線時間長、構件失敗率高導致的蝴蝶效應(迭代快,加班多)

2、自動化測試能解決什么問題?

①、提高出現問題后的響應速率

②、降低回歸成本

③、提高回歸覆蓋率

④、提高回歸效率

⑤、提高回歸的穩定性

3、自動化測試的不足有哪些?

①、無法減少成本投入,而是為了加快測試結果反饋,提升測試質量

②、自動化適用于回歸和冒煙,而不是發現BUG

③、錄制回放功能是雞肋,可視化并不是一個很好的做法

④、不是所有所有系統所有功能都適合做自動化測試

三、自動化測試框架

構成框架的組件,最起碼應該具備以下的功能:

Log:日志記錄和管理功能,針對不同的情況,設置不同的日志級別,方便定位問題;

Report:測試報告生成和管理以及即時通知,測試結果快速響應;

Source:配置文件、靜態資源的管理,遵循高內聚低耦合原則;

Common:公共函數、方法以及通用操作的管理,遵循高內聚低耦合原則;

TestCase:測試用例管理功能,一個功能點對應一個或者多個case,盡可能的提高覆蓋率;

TestData:測試數據管理功能,數據與腳本分離,降低維護成本,提高可移植性;

TestSuite:測試組件管理功能,針對不同場景不同需求,組裝構建不同的測試框架,遵循框架的靈活性和擴展性;

Statistics:測試結果統計管理功能,每次執行測試的結果統計、分析、對比以及反饋,數據驅動,為軟件優化和流程改進,提供參考;

Continuous:持續集成環境,即CI環境,包括測試文件提交、掃描編譯、執行測試、生成報告及時通知等功能,持續集成是自動化測試的核心

四、常見的自動化測試框架

1、接口自動化框架:

①、java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine

②、python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

④、jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine

2、UI自動化測試框架

①、java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine

②、python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

③、python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

通過上面的一些常見框架,你發現了什么?

它們都擁有共同特性:編程語言+單元測試框架+掃描編譯工具+持續集成工具+數據庫+項目管理工具

編程語言:編寫測試腳本、日志記錄和輸出;

單元測試框架:提供測試腳本運行、異常校驗等一些列的配置;

掃描編譯工具:測試文件掃描編譯,一般配合持續集成工具使用效果更佳;

持續集成工具:Jenkins,經典的持續集成工具;

數據庫:測試數據管理;

項目管理工具:測試結果統計管理;

PS:自動化測試工具太多,上面只是列舉了使用率較高以及我個人還算了解的一些開源工具,具體的框架選型,需要根據具體項目特點和團隊、個人技術特點來決定!


????????????? 【下面是我整理的2023年最全的軟件測試工程師學習知識架構體系圖】


一、Python編程入門到精通

二、接口自動化項目實戰?

三、Web自動化項目實戰


四、App自動化項目實戰?

五、一線大廠簡歷


六、測試開發DevOps體系?

七、常用自動化測試工具

八、JMeter性能測試?

九、總結(尾部小驚喜)

生命不息,奮斗不止。每一份努力都不會被辜負,只要堅持不懈,終究會有回報。珍惜時間,追求夢想。不忘初心,砥礪前行。你的未來,由你掌握!

生命短暫,時間寶貴,我們無法預知未來會發生什么,但我們可以掌握當下。珍惜每一天,努力奮斗,讓自己變得更加強大和優秀。堅定信念,執著追求,成功終將屬于你!

只有不斷地挑戰自己,才能不斷地超越自己。堅持追求夢想,勇敢前行,你就會發現奮斗的過程是如此美好而值得。相信自己,你一定可以做到!?

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

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

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

相關文章

Redis相關知識

yum安裝redis 使用以下命令:直接將redis安裝到Linux服務器(Xshell)中 yum -y install redis 啟動redis 使用以下命令,以后臺運行方式啟動redis redis-server /etc/redis.conf & 操作redis 使用以下命令啟動redis客戶端 redis-…

RFID在新能源工廠大放異彩

RFID在新能源工廠大放異彩 我國在十四五規劃中提出了建設綠色低碳發展的目標,新能源產業成為了國家發展的重點領域之一,開始大力支持各種新能源廠商發展。各個廠商之間不僅比產品、比技術。也比生產想要降本增效,為了實現這一目標&#xff0…

MBD Introduction

介紹 MATLAB是MathWorks公司的商業數學軟件,應用于科學計算、可視化以及交互式程序設計等高科技計算環境。Simulink是MATLAB中的一種可視化仿真工具。 Simulink是一個模塊圖環境,用于多域仿真以及基于模型的設計。它支持系統設計、仿真、自動代碼生成以…

Spring基于xml半注解開發

目錄 Component的使用 依賴注解的使用 非自定義Bean的注解開發 Component的使用 基本Bean注解&#xff0c;主要是使用注解的方式替代原有的xml的<bean>標簽及其標簽屬性的配置&#xff0c;使用Component注解替代<bean>標簽中的id以及class屬性&#xff0c;而對…

算法Day26 數位統計

數位統計 Description 給你一個整數n&#xff0c;統計并返回各位數字都不同的數字x的個數&#xff0c;其中0 ≤ x < 10^n。 Input 輸入整數n 0≤n≤13 Output 輸出整數個數 Sample 代碼 import java.util.Scanner;public class Main {public static void main(String[] ar…

一個Oracle Application Container的實例

本例基本涵蓋了Oracle Multitenant功能中application container的以下內容&#xff1a; 創建application container/root創建application PDB創建application SEED在application root中安裝application在application root中升級application同步application 整個過程如下 創建…

Epoll服務器(ET工作模式)

目錄 Epoll ET服務器設計思路Connection類TcpServer類 回調函數Accepter函數Recever函數Sender函數Excepter函數 事件處理套接字相關接口封裝運行Epoll服務器 Epoll ET服務器 設計思路 在epoll ET服務器中&#xff0c;我們需要處理如下幾種事件&#xff1a; 讀事件&#xff…

基于javeweb實現的圖書借閱管理系統

一、系統架構 前端&#xff1a;jsp | js | css | jquery 后端&#xff1a;servlet | jdbc 環境&#xff1a;jdk1.7 | mysql | tocmat 二、代碼及數據庫 三、功能介紹 01. 登錄頁 02. 首頁 03. 圖書管理 04. 讀者管理 05. 圖書分類管理 06. 圖書借閱信息 07. 圖書歸還信…

CDN加速技術:降低服務器與網站成本的智慧選擇

隨著互聯網的飛速發展&#xff0c;網站的訪問量不斷攀升&#xff0c;服務器負載壓力逐漸增大。為了提高用戶體驗、降低服務器成本&#xff0c;并確保網站的高可用性&#xff0c;CDN&#xff08;內容分發網絡&#xff09;加速技術應運而生。本文將從服務器與網站成本的角度分析C…

NLP項目實戰01--電影評論分類

介紹&#xff1a; 歡迎來到本篇文章&#xff01;在這里&#xff0c;我們將探討一個常見而重要的自然語言處理任務——文本分類。具體而言&#xff0c;我們將關注情感分析任務&#xff0c;即通過分析電影評論的情感來判斷評論是正面的、負面的。 展示&#xff1a; 訓練展示如下…

比較不同聚類方法的評估指標

歸一化互信息&#xff08;NMI&#xff09; 要求&#xff1a;需要每個序列的真實標簽&#xff08;分類信息&#xff09;

你在地鐵上修過bug嗎?

作為技術人員&#xff0c;有沒有遇到下班路上收到老板電話&#xff0c;系統故障&#xff0c;然后地鐵上掏出電腦&#xff0c;修bug的場景。自己負責的業務線上出現問題&#xff0c;負責人心里是很慌的&#xff0c;在這種心理狀態下做事很容易二次犯錯&#xff0c;造成更大的問題…

SAP UI5 walkthrough step10 Descriptor for Applications

在這一步&#xff0c;我們將會把所有的應用相關的描述性的文件獨立放到manifest.json 新建一個manifest.json文件 webapp/manifest.json (New) {"_version": "1.58.0","sap.app": {"id": "ui5.walkthrough","i18n&q…

【已解決】No module named ‘sklearn‘

問題描述 No module named ‘sklearn‘ 解決辦法 pip install scikit-learn 完結撒花 契約、包容、感恩、原則……這些成年人該有的基本精神&#xff0c;為什么我在他們身上找不到呢&#xff1f;

圖像疊加中文字體

目錄 1) 前言2) freetype下載3) Demo3.1) 下載3.2) 編譯3.3) 運行3.4) 結果3.5) 更詳細的使用見目錄中說明 4) 積少成多 1) 前言 最近在做圖片、視頻疊加文字&#xff0c;要求支持中文&#xff0c;基本原理是將圖片或視頻解碼后疊加文字&#xff0c;之后做圖片或視頻編碼即可。…

ASP.NET Core概述-微軟已經收購了mono,為什么還搞.NET Core呢

一、.NET Core概述 1、相關歷程 .NET在設計之初也是考慮像Java一樣跨平臺&#xff0c;.NET Framework是在Windows下運行的&#xff0c;大部分類是可以兼容移植到Linux下&#xff0c;但是沒有人做這個工作。 2001年米格爾為Gnome尋找桌面開發技術&#xff0c;在研究了微軟的.…

數據庫版本管理框架-Flyway(從入門到精通)

一、flyway簡介 Flyway是一個簡單開源數據庫版本控制器&#xff08;約定大于配置&#xff09;&#xff0c;主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL&#xff08;PL/SQL、T-SQL&#xff09;方式和Java方式&#xff0c;支持命令行客戶端等&am…

TCP對數據的拆分

應用程序的數據一般都比較大&#xff0c;因此TCP會按照網絡包的大小對數據進行拆分。 當發送緩沖區中的數據超過MSS的長度&#xff0c;數據會被以MSS長度為單位進行拆分&#xff0c;拆分出來的數據塊被放進單獨的網路包中。 根據發送緩沖區中的數據拆分情況&#xff0c;當判斷…

ffmpeg編譯問題

利用ffmpeg實現一個播放器&#xff0c;ffmpeg提供動態庫&#xff0c;但是編譯鏈接的時候遇到下面的問題&#xff1a; ../ffmpegWidgetPlayer/videoplayerwidget.cpp:23: error: undefined reference to sws_freeContext(SwsContext*) ../ffmpegWidgetPlayer/videoplayerwidget.…

JWT介紹及演示

JWT 介紹 cookie(放在瀏覽器) cookie 是一個非常具體的東西&#xff0c;指的就是瀏覽器里面能永久存儲的一種數據&#xff0c;僅僅是瀏覽器實現的一種數據存儲功能。 cookie由服務器生成&#xff0c;發送給瀏覽器&#xff0c;瀏覽器把cookie以kv形式保存到某個目錄下的文本…